COLUMBUS, Ohio — Ohio State's 28-point lead had almost disappeared.
Its passing game, which had been almost flawless all season, was faltering.
The Buckeyes' defense, stout in the first half, was collapsing.
No. 9 Indiana was within reach of its first victory over Ohio State since 1988.
A regular-season that looked like it might not have any major challenges for the No. 3 Buckeyes suddenly had one when Indiana closed to within a touchdown in the fourth quarter on Saturday.
But Ohio State survived, 42-35, at an empty Ohio Stadium.
The win was Ohio State's 26th in a row against Indiana (3-1) and puts the Buckeyes (4-0) in commanding position — COVID-19 permitting — to win the Big Ten East.
Ohio State overcame the first three interceptions of the season by Justin Fields and another poor second-half defensive performance as it nearly blew a 35-7 lead.
Fields did throw for 300 yards and two touchdowns. Both were to sophomore Garrett Wilson, who had seven catches for 169 yards, his fourth straight 100-yard receiving game.
Master Teague III ran for a career-high 169 yards and two touchdowns in 26 carries. That included a 41-yarder for a score that started the second-quarter surge after Indiana's blitz-oriented defense had the Buckeyes' offense discombobulated. In addition to the interceptions, Indiana sacked Fields five times.
Still, when Ohio State added two more touchdowns in the final 5 minutes of the half on drives of 76 and 93 yards to take a 28-7 halftime lead and then scored to open the second half, IU's upset hopes looked dead.
At that point, Ohio State had outgained Indiana 464-191. The Buckeyes' defense had completely shut down the Hoosiers' run game.
But the second-half defensive problems that surfaced two weeks ago when Rutgers scored four touchdowns against the Buckeyes returned. Ohio State's defense was beaten on touchdown passes of 63 and 33 yards from Michael Penix Jr. to Ty Fryfogle to make it 35-21.
Ohio State then came up empty after a missed 44-yard field goal by freshman Jake Seibert, Penix's first pass to an open David Ellis glanced off the receiver's hands. On the next play, cornerback Shaun Wade made the biggest play of his season.
The secondary's leader has had a shaky start to the season, but he read a sideline route by Miles Marshall, broke on the ball and returned the interception 36 yards for a touchdown to push the lead back to 42-21.
But the Hoosiers weren't done. Penix found Ellis wide open on a fourth-and-10 play for a 16-yard touchdown to pull Indiana again to within two touchdowns with 12:26 left.
After Ohio State had to punt after managing only one first down, Fryfogle struck again. He beat Wade deep for a 56-yard touchdown to make it 42-35 with 10 1/2 minutes left.
The Buckeyes had a chance to make it a two-possession game with under 5 minutes left when it faced a fourth-and-1 at the Indiana 7. But coach Ryan Day decided to go for it, and Fields' high pass glanced off tight end Luke Farrell's hands.
Ohio State's defense then responded. After two incompletions, linebacker Pete Werner and nose tackle Tommy Togiaia sacked Penix to force a punt.
Ohio State then ran for a first down before punting to Indiana, which took over at its 22 with 38 seconds left. The Hoosiers moved the ball to the 38 but could get no farther.