Fueled by a head-turning victory at then-No. 11 Wisconsin last weekend, the Hawkeyes fought back from an 11-point deficit late in the first half.
They nearly blew it after an impressive rally, watching an seven-point lead inside the 60-second mark shrink to two after Ralph Sampson III picked up a loose ball off his own missed free throw and made a layup to cut the lead to two with 8 seconds left.
Roy Marble was fouled and missed both free throws, giving the Gophers (12-4, 0-3) one more chance.
Zach McCabe pitched in 12 points and Aaron White added 10 for the Hawkeyes, who ended a six-game losing streak to the Gophers, who have lost nine straight Big Ten games dating to their slide last year that pushed them out of postseason tournament consideration.
Julian Welch swished a 3-point shot a few seconds before the four-minute mark and another one from the corner with 32.9 seconds left, each time pulling the Gophers within four points, but they couldn't make enough shots when they needed to climb back in front.
Minnesota finished 4 for 23 from 3-point range.
Welch had 14 points.
With a combined 3-22 on the road over the last two seasons, coach Fran McCaffrey's team badly needed this kind of confidence-building victory.
Up next for Iowa is a home game against No. 6 Ohio State, then a trip to No. 10 Michigan State, followed by a visit from No. 16 Michigan.
Melsahn Basabe went scoreless for Iowa after putting up 14 points in each of the last four games, but the Hawkeyes had enough balance to improve to 7-0 when holding opponents this season to 68 points or fewer.
The last time Iowa beat Minnesota was here at Williams Arena, nearly five years ago.