WEST LAFAYETTE, Ind. (AP) -- No. 8 Michigan lost its starting quarterback. Backup John O'Korn and a rock-solid defense made sure the bigger goals stayed intact.
O'Korn led the offense on two time-consuming drives in the second half, Chris Evans ran for two touchdowns and the Wolverines scored the final 21 points in a 28-10 win at Purdue on Saturday.
"They can win in the late rounds," coach Jim Harbaugh said. "That's a great thing to learn about your ballclub. You never know quite what the character is. Things get tough, and a lot of people start groping for alternatives. Our guys dug deep and finished them off."
It was tougher than expected.
When the Wolverines (4-0, 1 -0 Big Ten) lost Wilton Speight late in the first quarter with an undisclosed injury, they asked O'Korn, the former Houston starter who had thrown only pass this season, to bail them out.
He warmed up quickly, completing all five of his throws on his first series and capping it with a 12-yard TD pass to Zach Gentry for a 7-0 lead. He wound up 18 of 26 with 270 yards and one interception as one of his former coaches at Houston, Tony Levine, watched from Purdue's sideline.
"It meant a lot for me, even if I don't play the rest of the year, to be able to go out and beat my former coach," O'Korn said. "It was a big moment for me. Call it whatever you want."
For the next two quarters, O'Korn and the offense went nowhere.
So the Wolverines' championship-caliber defense stepped in with an incredibly stingy second-half performance to make sure their conference title hopes and playoff aspirations remained alive.
Purdue (2-2, 0-1) managed only 10 yards and one first down over the final two quarters, not nearly enough to protect a 10-7 halftime lead.
"Michigan beat us down Michigan-style," Boilermakers coach Jeff Brohm said. "The better football team won. In the second half, they were the tougher team. Our second half was unproductive offensively."
Evans finished with 14 carries for 97 yards, scoring on a 10-yard run with 2:42 left in the third quarter to give Michigan a 14-10 lead and sealing it with a 49-yard run with 6:46 left in the game.
Ty Isaac's 1-yard TD run was sandwiched in between.
Michigan: The Wolverines' defense is every bit as good as advertised. Despite forcing only one turnover, they had five sacks, gave up 30 yards rushing and shut out Purdue for the final 36 minutes. If Michigan continues playing this way, it won't matter who plays quarterback.
Purdue: This is the first real stumble of the season. The fact that it happened in front of a national television audience and in front of the Boilermakers' largest home crowd for a Big Ten game in four years wasn't ideal. But Purdue was competitive long enough to keep the momentum going.
Michigan: Speight was injured on a sack with 5:11 left in the first quarter. After staying on the ground for several minutes, he got up and walked off the field gingerly with four trainers around him. Harbaugh only said that he thought it was a "soft tissue" injury and not structural. Tight end Nick Eubanks also left after taking a hit to the head in the second half.
Purdue: Quarterback David Blough re-injured his throwing shoulder in the fourth quarter. Brohm said he could miss the Boilermakers' next game in two weeks. Defensive end Austin Larkin early in the second quarter with an undisclosed injury. Thieneman and linebacker Ja'Whaun Bentley must sit out the first half against Minnesota after both were called for targeting.
Harbaugh didn't mince words when asked about President Donald Trump's comments about firing players who peacefully protest during the national anthem.
"No, I don't agree with it. That's ridiculous," he said. "Go check the Constitution."
Purdue's streak of non-sellouts at Ross-Ade Stadium finally ended Saturday. With an announced crowd of 60,042, it marked the first time since the 2008 season finale, former coach Joe Tiller's final home game, that no tickets were available.
It's the largest crowd to see a game at Ross-Ade since a heavily-partisan Notre Dame crowd of 61,127 showed up Sept. 14, 2013.
Michigan: Ran 44 times for 139 yards after topping the 190-yard mark in every other game this season. Sean McKeon had five catches for 82 yards. Devin Bush had six tackles and one sack.
Purdue: The offense went 0 for 12 on third down, gave up five sacks and had only 30 yards rushing on 20 carries. The defense finished with four sacks and came up with two turnovers.
Michigan: Hosts in-state rival Michigan State on Oct. 7 following a bye.
Purdue: Returns to action Oct. 7 by hosting Minnesota.