There were more than a few tense moments, but the ninth-ranked Buckeyes topped No. 20 Iowa 20-17 on Saturday afternoon.
The win kept Ohio State's hopes for at least a share of a sixth consecutive Big Ten championship alive. The Buckeyes (10-1, 6-1) will clinch that if they beat Michigan next week in Columbus, but that much was not certain until after the sun went down on 70,585 fans at Kinnick Stadium in Iowa City. Wisconsin and Michigan State could also share the title if they close the season with wins.
Iowa (7-4, 4-3) led 7-3 at the half and 17-10 with 11:53 to go in the fourth quarter after a 1-yard touchdown run by Hawkeye freshman Marcus Coker.
The go-ahead score followed Ohio State quarterback Terrelle Pryor's second interception of the day.
The junior fought inconsistency all afternoon but made enough plays to put the Buckeyes in position for a 48-yard field goal by Devin Barclay that cut the Iowa advantage to four points with 7:38 left on the clock.
The Ohio State defense followed that with a three-and-out that began with a sack by defensive lineman John Simon and ended when the sophomore batted down a Ricky Stanzi pass.
Ryan Donahue followed with a booming 52-yard punt that forced the Buckeyes to set up shop at their own 24 with 6:05 left.
From there, Ohio State needed 11 plays to move into position for Dan Herron's 1-yard touchdown run that gave the Buckeyes the lead. Along the way, Pryor converted a crucial fourth-and-10 with a 14-yard run one play after his deep pass down the sideline was dropped in the end zone by friend and classmate DeVier Posey, who had run past the Iowa zone and was in the clear.
The Hawkeyes got the ball back at their own 44 with 1:39 to go but failed to get a first down. Stanzi completed a pass over the middle to Marvin McNutt on fourth-and-21, but Buckeyes Ross Homan and Jermale Hines brought the Iowa receiver down two yards short of the line to gain. The Hawkeyes needed 21 thanks to a third-down sack by Cameron Heyward.
Ohio State ran the last 1:10 off the clock thanks to 19 yards on four carries by Herron, who broke loose for 11 on fourth-and-2 to ice the game.
Herron finished the day with 69 yards on 20 carries.
Pryor, who sometimes misfired his passes and other times was the victim of drops by his receivers, completed 18 of 33 passes for 195 yards. He threw a 5-yard touchdown pass to Reid Fragel but had a pair of interceptions on questionable throws.
The first came by Micah Hyde on a deep pass late in the second quarter when he threw too late over the middle, and the second was batted into the air by a Hawkeye linebacker and caught by cornerback Shaun Prater. He returned it to the OSU 27 to set up the final Iowa touchdown.
Both times Pryor looked to have room in front of him to run but threw into coverage.
The Buckeye quarterback ended up his team's leading rusher and he ran 15 times for 78 yards. He set a new school record with his 20th game of at least 200 total yards. He ran his career rushing total to 2,000 yards, joining Cornelius Greene as a Buckeye quarterback to reach that plateau. Greene's 2,066 career yards are a school record for a quarterback.
Stanzi, a senior from Mentor, Ohio, was 20 for 31 for 195 yards and a first-quarter touchdown pass to McNutt that covered 19 yards. McNutt was his favorite target as he caught seven passes for 92 yards. Coker led the Hawkeyes with 70 yards rushing on nine carries.
Dane Sanzenbacher hauled in six passes for 102 yards, including a 24-yarder at the Iowa 2-yard line two plays before Herron's winning touchdown run.
Ohio State outrushed Iowa 158-81, and both teams had 195 yards passing.
The Buckeyes beat Iowa for the 12th time in the past 13 meetings between the schools, and they became the first Big Ten team to win at least 10 games in six consecutive seasons.