Akrum Wadley had 115 yards rushing for the Hawkeyes (6-4, 4-3 Big Ten), who beat a top-five team for the first time in six years.

Michigan (9-1, 6-1) appeared to have the game wrapped up on Channing Stribling's interception of Iowa quarterback C.J. Beathard with 1:54 left. But the Hawkeyes defense stuffed the Wolverines, and a face mask penalty put Iowa at Michigan's 36 with 1:23 to go.

Duncan then drilled the ball through the uprights from nearly the same spot where Daniel Murray hit the game-winner eight years ago to knock Penn State out of the national title picture.

Michigan is still alive for a playoff bid, in part because Clemson and Washington lost earlier. Still, the Wolverines have yet to beat a team with more than one league win on the road.

Wilton Speight threw for 103 yards with a pick for the Wolverines, who gained just 201 yards of offense.