James Vandenberg threw for 224 yards and two touchdowns as the Hawkeyes beat Northwestern 41-31, snapping a three-game losing streak to the Wildcats.
Marcus Coker added 124 yards rushing and two TDs for the Hawkeyes (4-2, 1-1 Big Ten), who won despite allowing 495 yards and 29 first downs to Northwestern.
Iowa blew a 17-0 second-quarter lead, then pulled ahead 24-17 on Coker's 1-yard TD run with 13:55 left. Vandenberg pushed the lead to 31-17 on a 35-yard TD pass to Marvin McNutt, and Coker's 1-yard touchdown run with 3:56 to go sealed just Iowa's second win over the Wildcats in seven tries.
Northwestern (2-4, 0-3) has now allowed 121 points in Big Ten play. Worse yet, Iowa scored 41 points despite holding the ball for less than 22 minutes and running just 50 plays.
The Wildcats allowed 24 points in the fourth quarter alone - which is more than Iowa scored against them in each of their previous three meetings.
Dan Persa threw for 246 yards on 31 of 40 passing for the Wildcats, who dropped their fourth straight game.
Northwestern dominated the box score - but it let Iowa make the most of its opportunities.
Northwestern trailed by 10 at the break despite leading the Hawkeyes in nearly every statistical category. The Wildcats continued to rack up yards at the start of the second half though, pulling within 17-14 on Adonis Smith's 4-yard run and tying the game on Jeff Budzien's 47-yard field goal with 4:19 left in the third quarter.
Though the Hawkeyes could barely stop Northwestern on third down - the Wildcats converted a staggering 16 of them in 22 tries - they made it count when they did.
The Wildcats trailed 24-17 when they drove to Iowa's 23-yard line with 10 minutes left. But Kain Colter, in at quarterback, got drilled as he threw a wayward backward pass on third-and-5.
Budzien then missed from 47 yards, and three plays later Vandenberg found McNutt streaking down the middle of the field for a backbreaking touchdown.
Northwestern's shot at another rally fizzled after just two plays.
Persa lost a fumble deep in Iowa territory, and Mike Meyer's 40-yard field goal put Iowa ahead 34-17 with 6:49 left.
''This season has been a journey and right now we're just facing a storm,'' Colter said. ''We just faced the worst part of the storm, and we could turn around and go back or we can keep pushing on.''
Northwestern responded with an 18-yard TD pass from Colter to Drake Dunsmore with 4:50 left. But McNutt, whose TD reception was a school record-tying 21st of his career, recovered an onside kick and brought it back deep into Wildcats territory.
Persa's creativity crushed the Hawkeyes in a 21-17 Northwestern victory in Evanston in 2010, using his arm and legs to keep a pair of fourth-quarter touchdown drives alive.
In the opening quarter, Persa pushed his limits too far.
On a first-and-goal from Iowa's 7-yard line, Persa floated a pass to the middle of the field despite being harassed by a pair of Hawkeyes. The effort floated aimlessly into the thankful arms of Tanner Miller, who took it back for an easy 98-yard touchdown return.
Miller's interception return put Iowa ahead 10-0 with 4:08 left in the first quarter and tied the longest in school history.
''We got all the momentum and we're going down on the drive to score and we turn it over and it's a pick-six,'' Fitzgerald said. ''That was a big change in momentum on the road and it's tough to overcome.''
The Hawkeyes made it 17-0 on a pair of long tosses from Vandenberg to a wide-open Davis.
The first covered 31 yards and came over the top of Northwestern's secondary. The second looked like the same play - but this time Davis cruised into the end zone for a 47-yard touchdown with 9:34 left before halftime.
Northwestern got one back on Persa's 6-yard touchdown pass to Jeremy Ebert with 3:54 to go. But after leading at the break in each of their first two Big Ten games, the Wildcats trailed 17-7.
''In the heart of the storm you stay the course and find a way to get some things fixed,'' Fitzgerald said.