Iowa got within two late in the second half after trailing 22-2 to begin the game, but dropped its sixth straight game Wednesday at Minnesota.
The win snaps a nine-game losing streak for the Golden Gophers (15-15, 4-13).
Iowa (12-18, 3-14) turned it over eight times in the game's first eight minutes and trailed 31-19 at halftime.
Ryan Kriener and Isaiah Moss sparked a second-half surge in which the Hawkeyes scored 63 points and cut the lead to four with 8.4 seconds left, then two with 3.0 seconds to go on a Moss 3.
Minnesota barely got the ball inbounds, then Davonte Fitzgerald made two free throws to seal it.
Isaiah Moss led the Hawkeyes with a career-high 32 points on 12-for-18 shooting; he scored 14 of Iowa's last 15 points. Kriener had a career-high 15 points off the bench.
Leading scorer Tyler Cook had six, while Jordan Bohannon was scoreless. Iowa was 4 of 17 from 3-point range.
Nate Mason led Minnesota with 33 points and six assists. Dupree McBrayer added 16 points, while Jordan Murphy had 10 points, 10 rebounds, five steals and two blocks.