IOWA CITY, Iowa - Iowa's season appeared on the brink of disaster.
It took a trip back to Kinnick Stadium for the beleaguered Hawkeyes to find their heart.
Marcus Coker ran for 132 yards and a pair of touchdown and Iowa held off a late Michigan rally to beat the 13th-ranked Wolverines 24-16 on Saturday.
James Vandenberg added 171 yards passing and a TD for the Hawkeyes (6-3, 3-2 Big Ten), who have won three straight over Michigan for the first time in school history.
Michigan (7-2, 3-2) drove to Iowa's 3-yard line with 16 seconds left. But Denard Robinson missed on four straight throws, with Iowa's B.J. Lowery breaking up Robinson's final toss to seal the win.
Though Iowa is an unsightly 0-3 on the road, it's now bowl eligible because its 6-0 at home.
"They showed a lot of heart," Ferentz said. "You're kind of rolling the dice a little bit because (Robinson) is a dangerous thrower but also he can squirt out of there and run that ball in there."
Iowa's defense bent on the final drive — in fact, it nearly broke.
But a couple of calls went the Hawkeyes' way, and a defense that couldn't stop Minnesota in the fourth quarter last week did the rest.
Vincent Smith appeared to pull the Wolverines within 24-22 on an 82-yard TD run after bouncing off Iowa's James Morris and going untouched for the score with just over two minutes left.
Replay officials, however, ruled Morris' elbow had touched the ground. Robinson shook it off and calmly drove the Wolverines down the field.
Then, in the final sequence, Junior Hemingway's apparent TD grab was ruled out of bounds, and Smith dropped one in the end zone on the next play.
Robinson couldn't connect with Roy Roundtree on fourth down, sending the jubilant Hawkeyes streaming onto the field.
Robinson finished 17-of-37 passing for 194 yards and two TD passes.
"Defense stepped up when we needed to," Iowa defensive end Broderick Binns said. "I was thinking to myself, 'It couldn't happen two weeks in a row.'"
"If you're a bend but don't break team, you'd better not break when you get down in there," Ferentz said. "That was a critical thing."
Coker's second touchdown, a 13-yard run with 10:42 left, put Iowa ahead 24-9. Robinson wasted little time answering, finding Kevin Koger for a 7-yard touchdown pass that pulled Michigan within 24-16 with 7:53 to go.
Robinson led the Wolverines to a field goal on their first possession of the second half, cutting Iowa's lead to 17-9 with 6:19 left in third quarter. But he dinged his elbow and was replaced for a series by Devin Gardner.
Robinson found himself and the Wolverines in a big hole when he got back.
The Hawkeyes took 5:27 off the clock, and Coker burst through a huge hole and went into the end zone untouched to put the Hawkeyes ahead by 15.
The upset was a huge win for Iowa after its debacle in Minnesota — a game that ranked among the worst in Ferentz's 13-year tenure.
The Hawkeyes came out like they'd had enough of hearing about that stinker, driving 76 yards on just six plays and going ahead 7-0 on Coker's 4-yard TD run less than five minutes in.
Michigan answered on Robinson's 5-yard TD pass to Toussaint late in the first quarter. But holder Drew Delio bobbled the snap on the kick, allowing Iowa to stay ahead 7-6.
Iowa made it 14-6 on Vandenberg's 1-yard TD pass to Brad Herman midway through the second — and pushed it to 17-6 at halftime behind a pair of Robinson blunders.
Robinson's fumble led to a 42-yard field goal by Mike Meyer, and he finished the half by getting picked off by Christian Kirksey on a deflected ball at the Iowa goal line just before the break.
Michigan had gained over 500 yards of offense in three of its last four games, but Iowa held the Wolverines to 323 yards.
Iowa's defense suffered a blow, though, as starting lineman Dominic Alvis tore his anterior cruciate ligament and is done for the year.
"Last week we deserved to feel bad and we earned that, and this week is the flip," Ferentz said. "These guys earned a chance to feel really good about themselves."