EAST LANSING, Mich. (AP) -- Arjen Colquhoun thought he'd sealed a win for Michigan State after defending a fourth-down pass late in the final quarter. Then his brief celebration was halted by a penalty flag: holding on Colquhoun.
Moments later, it was fourth down again, and Purdue threw another pass Colquhoun's way. He was in good position to close in on the intended receiver, the ball fell incomplete, and this time Colquhoun paused to check for a flag.
"I was like, `Before I celebrate, let me just see,"' he said. "It was good, it was clean."
The second-ranked Spartans could finally relax after Purdue's final drive fell short, and No. 2 Michigan State beat the Boilermakers 24-21 on Saturday despite a lackluster second half. LJ Scott ran for 146 yards and two touchdowns for the Spartans.
Michigan State's school-record streak of 12 games with at least 30 points was snapped.
The Spartans (5-0, 1-0 Big Ten) led 21-0 at halftime, but Purdue had the ball with a chance to tie or take the lead late in the fourth quarter. The penalty on Colquhoun gave the Boilermakers first down at their 47, but they turned the ball over on downs with about a minute remaining.
"The bottom line is just win," Michigan State coach Mark Dantonio said. "You're the No. 2 team in the nation, you're going to get everybody's best shot."
Michigan State's Connor Cook went 13 of 19 for 139 yards and a touchdown, and he became the school's career leader with his 28th victory as the starting quarterback. Kirk Cousins won 27 games.
Cook is now 28-3 as the starter.
"It's a great accomplishment and it means a lot," Cook said. "It's a credit to all the guys that have been around the team. Football's a team sport."
The Boilermakers (1-4, 0-1) turned the ball over three times in the first half.
Michigan State has had at least one 100-yard rusher in every Big Ten game since Oct. 5, 2013, against Iowa. That streak may be in jeopardy this year since the Spartans have been splitting carries fairly evenly between Scott and Madre London. Scott ended up with 18 carries Saturday, and London had 97 yards on 17 attempts.
Michigan State was without injured tackle Jack Conklin, and his backup, Dennis Finley, was carted off near the end of the first half with a broken leg.
Scott opened the scoring with an 18-yard touchdown run, breaking free when Purdue safety Leroy Clark tried to grab his leg. Later in the first quarter, Michigan State drove 94 yards in eight plays to make it 14-0 on Scott's 1-yard run.
R.J. Shelton added a 23-yard touchdown in the second quarter on what looked like an end-around, but Cook had apparently flipped the ball forward as the receiver came across to take it, and the play was credited as a touchdown pass.
This was the 100th Homecoming game for Michigan State, and the weather didn't cooperate. Attendance was announced at 74,418, and Spartan Stadium was pretty much full in the first half, but the crowd emptied out considerably at halftime.
Michigan State, which has been underwhelming since beating Oregon last month, nearly let this game slip away. Purdue's Markell Jones scored on a 68-yard run to make it 21-14 with 14:10 remaining.
"I think we knew what we were capable of doing, like breaking out for a long touchdown," Jones said. "Early in the game we did a lot of read option and things like that. We kept chipping away and I kept telling the guys that one's going to break eventually, one's going to break."
The Spartans, keeping the ball mostly on the ground, drove 65 yards to set up Michael Geiger's 30-yard field goal, but Purdue answered with an impressive drive of its own, and Jones' 3-yard touchdown run with 6:44 to play made it a three-point game.
Jones finished with 157 yards on 22 carries.