Iowa came from behind to force overtime in East Lansing then slipped past Michigan State, 19-16, in double-overtime to improve to 2-0 in the Legends Division of the Big Ten.
The win gave Iowa coach Kirk Ferentz his 100th career win at Iowa.
Iowa running back Mark Weisman scored a touchdown late in the fourth quarter to tie the game at 13 and force overtime.
Mike Meyer kicked field goals in both overtime periods, including a 42-yarder in the second that gave the Hawks (4-2, 2-0 Big Ten) their first lead of the game.
Greg Castillo intercepted a tipped pass from Michigan State's Andrew Maxwell to seal the win in less than ideal conditions. Steady rain in East Lansing combined with a natural playing surface made for tough going offensively for both teams.
Michigan State running back Le'Veon Bell ran for 140 yards and a touchdown and Weisman finished with 116 yards and the crucial game-tying score as both teams relied heavily on the ground game.