Michigan coach Rich Rodriguez pulled quarterback Tate Forcier in the fourth quarter. Fellow freshman Denard Robinson led a touchdown drive capped by his own 3-yard run, and Michigan got the ball back with 1:30 left. But Robinson was intercepted by Brett Greenwood with 46 seconds left, keeping the Hawkeyes (6-0, 2-0), the only unbeaten team left in the Big Ten.
Michigan (4-2, 1-2) had a season-worst five turnovers. Forcier was 8 of 19 for 94 yards and an interception.
Michigan's Donovan Warren ran back an interception for a touchdown in the game's first minute and Brandon Minor scored twice for the Wolverines.
Tony Moeaki had two wide-open TD catches for Iowa, but nothing else came easily for the Hawkeyes.
Michigan was trailing 23-21 when it stuffed Iowa on a 4th-and-goal at the 1-yard line early in the fourth quarter. But Iowa's defense then forced a three-and-out, and Stanzi found Moeaki for a 42-yard touchdown pass on the first play after the punt to make it 30-21 with 12:56 left.
Though Robinson led Michigan on a 59-yard scoring drive, his errant pass sent Michigan to its second straight loss _ both on the road after a 4-0 start.
Michigan's offense, which had been stymied since scoring late in the first quarter, put together a 57-yard scoring drive midway through the third quarter. Minor, who rushed for 95 yards and the first two running TDs on Iowa all year, scored from 1 yard out to make it 23-21.
Michigan muffed a punt at its own 16, but the Wolverines defense held, as Stevie Brown broke up a pass on 4th-and-goal from the 1-yard line.
Iowa, despite rushing for three yards in the first half, led 20-14 at the break.
The Hawkeyes took that lead midway through the second quarter behind Stanzi, who threw a 47-yard pass to Derrell Johnson-Koulianos _ on 3rd-down-and-24 _ to set up a 1-yard TD leap by Brandon Wegher.
Stanzi's first pass went directly to Warren, who took a gift-wrapped interception 40 yards for a touchdown just 46 seconds in.
It was the third Stanzi pick this season that was returned for a touchdown _ but he made up for it on Iowa's next possession.
Sensing a blitz, Stanzi checked out of the original play and Moeaki was sent into the flat. Moeaki was wide open, and Stanzi found him for a 34-yard touchdown pass to tie it up at 7.
Forcier then threw an interception on his first pass, setting up Daniel Murray's 28-yard field goal.
Michigan answered immediately, jumping back ahead 14-10 on a 3-yard TD run by Minor. It the first rushing touchdown allowed by Iowa in 33 quarters.
This was the first meeting between the Hawkeyes and the Wolverines since 2006 and just the seventh night game at Kinnick Stadium, which doesn't even have permanent lights. Temperatures were in the mid-30s at kickoff.
It was the coldest college game for Forcier, a native of San Diego.
It was also the first time since 1985 that Iowa played the Wolverines as the higher-ranked team. In that one, the top-ranked Hawkeyes beat No. 2 Michigan 12-10.