Braxton Miller accounted for five touchdowns and Ohio State ran for 393 yards, but the third-ranked Buckeyes barely held off an upset bid by Michigan, escaping with a 42-41 victory.
Michigan scored a TD with 32 seconds left, but missed on a two-point conversion try.
Miller ran for 153 yards and three TDs and threw for 133 and two more scores; the three rushing TDs ties his single-game career high. Buckeyes tailback Carlos Hyde ran for 226 yards and a score. It was the third consecutive game that Hyde and Miller each ran for at least 100 yards.
In addition, the Buckeyes set a team record for rushing yards against Michigan; they had rushed for 312 in 1961. And Hyde's yardage total was the most by a Buckeyes running back against Michigan; the record had been 222 by Beanie Wells in 2007. It was Hyde's second 200-yard game of the season.
Ohio State needed every one of its 526 total yards. Its defense was shredded by a Michigan offense that had sputtered for most of the season. The Wolverines rolled up 603 yards Saturday, with junior quarterback Devin Gardner throwing for 451 yards and four TDs.
Miller threw a 53-yard TD pass and scored on a 53-yard run in the first quarter. He added a 21-yard run late in the first half for a 21-21 halftime tie, then scored on a 3-yard run midway through the third quarter. Miller also threw a 22-yard TD pass late in the period for a 35-21 lead. Hyde's TD gave the Buckeyes a 42-35 lead with 2:20 left.
Ohio State (12-0), which has won 24 in a row, moves on to play Michigan State (11-1) in next week's Big Ten championship game. The victory also keeps the Buckeyes alive in the hunt for a spot in the BCS national championship game.
Mike Huguenin can be reached at mike.huguenin@nfl.com. You also can follow him on Twitter @MikeHuguenin.