In a game where baskets were hard to come by at times, the Wildcats (12-8, 3-4 Big Ten) made just enough shots down the stretch to beat a ranked opponent for the second time in three games while sending the Gophers (15-4, 3-3) to their third straight loss.
Alex Marcotullio made a 3-pointer midway through the second half to give Northwestern a one-point lead and start the decisive 13-2 run.
Reggie Hearn scored 13 points after averaging 21 in the previous two games. Tre Demps added 10 points, and the Wildcats shook off a loss to Indiana and took out another ranked team to go with their victory over then-No. 23 Illinois last week.
They prevailed despite getting outrebounded 45-31 because they held Minnesota to its lowest point total of the season.
The Gophers got 14 points and 16 rebounds from Trevor Mbakwe, but had little else going for them. They shot 33.3 percent and were 5 of 19 on 3-pointers, missing 12 in a row before Andre Hollins hit one with 35 seconds left.
That made it 52-48, but Hearn made 3 of 4 free throws to preserve the win.
The Wildcats were trailing 39-37 after a dunk off an alley-oop pass by the Gophers' Rodney Williams when Marcotullio nailed a 3 with 10:25 left to give the Wildcats a 40-39 lead and start the decisive run.
Demps buried a 3 from the corner about 3 minutes later and followed that with two free throws to make it a six-point game.
A pivoting Joe Coleman then made a jumper, ending about a 5-minute scoreless drought, but Alex Olah and Swopshire followed with layups to keep the run going.
Minnesota coach Tubby Smith questioned his team's effort following the loss to Michigan, and he probably wasn't thrilled with what he saw in the early going.
The Gophers led 27-24 at halftime even though they shot just 29 percent and cooled off in a big way from the outside after a promising start.
They made four 3-pointers in the early going but were just 4 of 13 in the half. And neither team was connecting at the free throw line in the early going, with Minnesota making 5 of 10 and Northwestern 7 of 15.
Despite all that, the Gophers were leading 27-19 after a 9-2 spurt that Mbakwe started with a rebound dunk and finished with a three-point play in the lane with 4:45 left.
But with Minnesota going cold, the Wildcats hung in even though they weren't exactly lighting up the scoreboard and were within three at the half after Demps' jumper from the wing at the buzzer.