Joe Harris and Virginia caught Duke looking ahead, as the Cavaliers knocked off the third-ranked Blue Devils, 73-68, to extend their winning streak at John Paul Jones Arena to 16 games.
Harris scored a career-high 36 points while Akil Mitchell logged 19 points and 12 rebounds for Virginia (20-8, 10-5 ACC), which earned its first win over a top-5 opponent in exactly 11 years and ended an eight-game skid against the Blue Devils.
"I've been fortunate enough to be in a lot of pretty special settings, and this one ranked up there with how loud it was," Virginia head coach Tony Bennett said of the home-court advantage.
The loss drops Duke (24-4, 11-4) three games behind ACC-leading Miami-Florida with three to play, meaning their anticipated showdown on Saturday in Durham has lost some of its suspense.
Duke had won eight of nine coming in, but struggled against the nation's fourth-ranked scoring defense and got outrebounded by a 36-25 margin.
Seth Curry had 28 points and Mason Plumlee was held to 10 in the loss.
"It was a very, very physical game and we're not equipped for that type of game and we got knocked back," Duke Head Coach Mike Krzyzewski said. "They were deserving of winning and congratulations to them."
The Blue Devils missed their first six shots and found themselves down 9-0 before the first official timeout. They had their deficit down to one on two occasions late in the opening half, but never got over the hump and trailed 28-23 at intermission.
Curry made a 3-pointer on Duke's first possession after the break to pull the Blue Devils within two, but another four-minute drought allowed Virginia to rattle off 10 straight points -- the last four coming on free throws by Harris after Rasheed Sulaimon was whistled for a technical for arguing his shooting foul.
The margin reached its peak when two Mitchell free throws gave the Cavaliers a 55-39 cushion with 6 1/2 minutes to play.
Duke's subsequent 7-0 run cut the deficit to single digits, but Virginia scored on its next four possessions coming out of a timeout to stay in control.
With Virginia leading by 10 down the stretch, Harris and Mitchell fittingly sealed the win, as the former drew a double team on the perimeter and fired a jump pass to Mitchell for a two-handed slam.
"When Joe gets that look in his eye that he's not going to be denied, he's hard to stop because of his strength and size. He's playing very good basketball. We needed that," Bennett said.
The Cavaliers' previous win over a top-5 foe was also against a third-ranked Blue Devils club, an 87-84 triumph on Feb. 28, 2002 ... Virginia came in giving up 54 points per game ... Virginia has posted back-to-back 20-win seasons for the first time since 1991-92 and 1992-93 ... The Cavaliers had 18 second-chance points to Duke's five ... Quinn Cook scored 22 points for Duke, while Sulaimon, who was coming off a 27-point effort in a win over Boston College, had four on 2-of-10 shooting ... Duke fell to 4-4 in true road games.