Purdue has slayed a couple of the big boys this season, first beating then-No. 2 Iowa on Oct. 16, and now beating 3rd-ranked Michigan State, 40-29, on Saturday.

The Boilermakers might have ended each one’s bit for a spot in the College Football Playoff.

Saturday at Ross-Ade Stadium, Purdue improved to 6-3, earning bowl eligibility for the first time since the 2018 season.

Let’s grade the Boilermakers after the win.

Passing offense

Aidan O’Connell came to Purdue as a walk-on.

He looked nothing like one on Saturday, as the senior quarterback passed for 536 yards on 40-of-54 with 3 touchdowns. And considering the number of attempts and the yardage, it’s quite impressive that O’Connell did it without turning the ball over. He found David Bell 11 times for 217 yards and 1 touchdown, and unlike the last couple of weeks, when the receiver had been held somewhat in check, Bell had 73 yards after the catch. O’Connell found 8 different receivers, including backup tight end Garrett Miller, who had a career day with 74 yards on 8 receptions.

O’Connell was throwing darts, almost always hitting receivers on the numbers and allowing them to run after the catch. Of his 536 yards, 264 came after receivers had the ball in their hands. There were very few errors: O’Connell’s only bad miss came in the 2nd half, when he overthrew a wide-open TJ Sheffield in the end zone, leaving Purdue to settle for a field goal. The line allowed a couple of sacks. And Purdue had a couple of drops, one of which stymied a drive.

But mostly, O’Connell and the passing game were awesome. O’Connell’s 1st TD pass was great, when he ducked between a couple of defensive linemen, kept his eyes toward the end zone, found Bell and hit him with a missile. And the 2nd was impressive, too, when O’Connell threw a perfect fade — the hardest pass in football — to Broc Thompson in the back left corner of the end zone. But no play was better than the double-reverse flea-flicker screen, when the ball ended up back with O’Connell, who hit Jackson Anthrop in the left flat. The receiver had a convoy of blockers as he weaved his way through the defense for a 39-yard touchdown.

Grade: A+

Rushing offense

Purdue didn’t have much success running, but the Boilermakers tried to stick with it as much as possible. They had 31 attempts that resulted in only 58 yards.

However, there were moments when Purdue got critical yardage on the ground, like Anthrop’s 11-yard red zone run on the Boilermakers’ 1st possession, setting up a touchdown.

King Doerue finished with 32 yards and 1touchdown, while Zander Horvath had 24 yards and Anthrop 14. Horvath fumbled on the 1st drive of the 2nd half, Purdue’s only turnover of the day.

Grade: D+

Offense

Purdue’s offense, which had been stuck in the mud for much of the season, found its groove early against the Spartans and never let up.

The Boilermakers had 594 yards of offense, scored 40 points and converted 11 of 18 3rd-down attempts and their only 4th down, when O’Connell hit Bell late in the 3rd quarter. Purdue scored on each of its 7 trips into the red zone, although it did have to settle for field goals 4 times. The Boilermakers did have 1 turnover, when Horvath put the ball on the turf in the 2nd half.

But the passing game was incredible, reminiscent of the good ole days of Purdue “basketball on grass” offensive football of the Joe Tiller era.

Grade: A

Passing defense

Purdue cornerback Dedrick Mackey might have made the play of the game when he intercepted MSU quarterback Payton Thorne in the 3rd quarter.

It came as the Boilermakers nursed a 34-21 lead, with the pick — it came on a 4th-down attempt — keeping the margin at 2 possessions.

Otherwise, Thorne had a solid day, passing for 276 yards and a couple of touchdowns. Purdue had 1 sack, coming on the last play when DeMarcus Mitchell brought down the QB. Purdue jostled Thorne occasionally, but probably not often enough. And even when it did, the QB made a few plays, like when he had to escape the pocket, buy extra time, then found a receiver in the end zone for MSU’s 1st score.

Grade: B

Rushing defense

Purdue’s goal wasn’t to shut down Kenneth Walker III and Michigan State’s running game, but rather to make the Spartans work for their yardage.

Often, the Boilermakers succeeded. Sometimes, they did not.

On MSU’s 4th down late in the 1st half, Walker got outside the contain of the Boilermakers’ defense, rushing around the edge for a 14-yard touchdown. The Heisman candidate finished with 146 yards on 23 carries, hitting almost exactly his season averages. His long run was a 33-yarder. He got loose on occasion, like the touchdown and on the 2nd carry of the game, but Purdue also was able to rally to him, as well, preventing him from an even bigger game.

The most painful run might have come from Payne, who got free for a 32-yard scramble for a score early in the 3rd quarter that tied the game at 21. The Spartans finished with 182 yards on 33 carries, averaging 5.5 per attempt.

Grade: C-

Defense

The Boilermakers gave up points (29) and yardage (458) to the Spartans, but they made big plays when needed, particularly snagging the 2 turnovers, both of them huge. Purdue set a tone early, first with George Karlaftis’ tackle for loss of Walker on the 1st play, then when Marvin Grant forced a fumble with his hit on the running back.

Purdue scored off that turnover.

And the defense prevented points with the 2nd, when Mackey intercepted Thorne in the end zone.

In a game like this one, 2 plays can make a gigantic difference, and they did for the Boilermakers.

Grade: B-

Special teams

It was an excellent bounce-back for kicker Mitchell Fineran, who had been laboring of late but connected on all 4 of his field-goal attempts. Purdue would rather not be attempting 29-, 24-, 23- and 22-yarders (the distance of the 4 makes), but it’ll take the points.

Purdue caught a break in the 2nd quarter, when an MSU penalty forced a re-punt, and the result was the Boilermakers taking possession near the 50 rather than at their own 1-yard line. It wasn’t a great day for MSU’s special teams — it a missed field goal by a backup PK — and Purdue took advantage.

Grade: A

Coaching

Another solid day for Jeff Brohm and staff, who had the Boilermakers ready to go against one of the best teams in the country. Brohm, who called a great game, stuck with the run, as he has tried to do the last couple of weeks, and it allowed the passing game to operate at an extremely high efficiency. The trick play was perfectly timed and gave the Boilermakers a huge boost of confidence late in the 1st half.

Br0hm has his team believing it can beat anyone.

Grade: A

Overall

For the 2nd time this season, Purdue beat a top-5 opponent.

And Saturday, the Boilermakers did so in dominating fashion, grabbing the early lead vs. the Spartans, then responding when MSU came back early in the 2nd half.

O’Connell was outstanding, the defense made the plays when it needed to and Fineran returned to his early season form. A well-rounded victory.

Grade: A