Just when Ohio State had become consistent, the Buckeyes reverted to their old form and fell flat.
The Buckeyes' three-game winning streak was snapped when Robert Marve's 1-yard touchdown on a quarterback sneak in overtime gave Purdue a 26-23 victory on Saturday.
The Buckeyes had to overcome deficits of 10-0 and 17-7 just to get to overtime.
"We didn't start the game off right," Ohio State coach Luke Fickell said. "We didn't start out the game fast enough."
Fickell liked the rally but disliked the fact that it was necessary.
"This team isn't built to be a team that comes from behind, but we battled and kept our heads up," Fickell said.
Braxton Miller passed for 132 yards and ran for 43, and Daniel "Boom" Herron ran for 62 yards on 18 carries for the Buckeyes.
Ohio State (6-4, 3-3 Big Ten) took the ball first in overtime, and Drew Basil's 33-yard field goal gave the Buckeyes a 23-20 lead.
Marve completed a 14-yard pass to Gary Bush on third-and-12 from the 15; then scored the game-winner on the next play.
Ohio State drove down the field trailing 20-14 in the final minutes. On fourth-and-3 from the Purdue 13, Miller scrambled and found Jordan Hall behind the secondary for a touchdown to tie the game, but Purdue's Bruce Gaston blocked Basil's extra-point try.
Purdue (5-5, 3-3) also upset Ohio State in West Lafayette in 2009.
Marve threw an interception in the final minute, but quickly redeemed himself. He stepped in for starter Caleb TerBush and completed 10 of 13 passes for 94 yards. Ralph Bolden ran for 80 yards on 18 carries for the Boilermakers.
Carson Wiggs' 19-yard field goal on Purdue's opening drive opened the scoring.
On its second possession, Purdue went 60 yards on 11 plays, and Akeem Shavers scored from 4 yards out to bump the Boilermakers' lead to 10-0. The Buckeyes were held to 11 yards and no first downs in the first quarter.
Ohio State finally got going early in the second quarter as Miller began creating passing opportunities with his ability to scramble. His 38-yard touchdown pass to Hall cut Purdue's lead to 10-7.
Marve then took the Boilermakers 88 yards on 13 plays. Bolden's 7-yard touchdown run pushed Purdue's lead to 17-7 with 3:19 left in the second quarter.
Basil missed a 50-yard field-goal try wide right as time expired, and the Boilermakers led 17-7 at the break. Purdue outgained the Buckeyes 242-97 in the first half and held the Buckeyes to 18 yards on 17 carries before the break. Herron was held to 16 yards on eight carries in the first half.
Purdue had a chance to perhaps put the Buckeyes away, but the Boilermakers went three-and-out to start the second half. Ohio State then moved right down the field, and Miller's 5-yard touchdown run cut Purdue's lead to 17-14 with 9:52 left in the third quarter.
Wiggs' 44-yard field goal with 13:06 to play put the Boilermakers up 20-14.