ANN ARBOR -- It came down to the final meaningful play, and No. 3 Ohio State stopped a two-point conversion attempt by Michigan with 32 seconds left to preserve a 42-41 victory over the Wolverines on Saturday.
The Buckeyes (12-0, 8-0 in the Big Ten), behind a powerful rushing attack, won their 24th consecutive game.
Ohio State senior running back Carlos Hyde had a career-best 226 rushing yards on 27 carries, while junior quarterback Braxton Miller had 153 yards on 16 carries and scored three touchdowns.
Miller also threw two touchdown passes.
Michigan's Jeremy Gallon had the best receiving day by a Wolverine against Ohio State, with nine catches for 175 yards and one touchdown.
Michigan quarterback Devin Gardner completed 32-of-45 passes for 451 yards and four touchdowns, including one in the final minute, when coach Brady decided to go for broke with Gardner' two-point conversion pass.
Tyvis Powell intercepted in the end zone to save the Buckeyes.
The Wolverines, who lost three of their last four games entering the showdown, led three times in the game.
Michigan (7-5, 3-5) gave the Buckeyes all they could handle, piling up 603 yards, while Ohio State answered with 526 total yards.
The Wolverines were pinned at their one-yard-line on their first possession, but delivered the game's first shocker when Gardner hit Gallon with a quick screen pass, and Gallon popped into an open seam and sprinted 84 yards to the Ohio State two.
Gardner waltzed in from the one and Michigan led, 7-0, after Matt Wile's kick.
Ohio State struck back quickly, with Miller throwing a perfect strike to wide receiver Devin Smith behind the Michigan secondary for a 63-yard touchdown play. Drew Basil's kick tied it, 7-7, with about five minutes left in the opening quarter.
Michigan got a 37-yard completion from Gardner to tight end Jake Butt to set up tailback Fitzgerald Toussaint's touchdown from eight yards for a 14-7 lead.
When Miller answered right back with darting 53-yard touchdown run, the game was tied, 14-14, in the final minute of the first quarter.
Michigan needed only four plays to go 78 yards and take a 21-14 lead in the opening minute of the second quarter. Then tempers exploded, with three players being ejected.
Things settled down following that incident, and after several exchanges of punts, with Miller scoring on a 21-yard scramble to even the score again, 21-21, at halftime.
The Buckeyes took their first lead of the day midway through the third quarter on Miller's short scoring run that provided a 28-21 advantage.
Ohio State made it a 35-21 lead by the end of the third quarter when Miller hit tight end Jeff Heuerman with a 22-yard scoring pass.
Michigan drove 83 yards to cut the lead to 35-28 with 11 minutes to play on Gardner's 11-yard touchdown pass to Drew Dileo.
Hyde then fumbled and Michigan recovered at the Ohio State 41, with an opportunity to tie the game. Gardner flipped a short touchdown pass to Butt with five minutes left, and Wile's kick made it 35-35.
The Buckeyes relied on Hyde to punch the ball in for the go-ahead score, and a 42-35 lead with 2:20 to play.
Michigan got a two-yard touchdown pass from Gardner to Funchess in the final minute to set up the dramatic finish.
NOTES: Michigan K Brendan Gibbons, who sustained an undisclosed injury in practice, did not dress for the game. ... Michigan coach Brady Hoke entered the game with a 19-1 record in Michigan Stadium, losing for the first time to Nebraska in early November. ... In the 109 previous meetings of these two rivals, Michigan spoiled an unbeaten season for the Buckeyes five times, with the last time in 1996.