CHARLOTTESVILLE, Va. -- RJ Barrett scored 26 points, Zion Williamson had 18 and No. 2 Duke used an early barrage of 3-pointers to stun No. 3 Virginia and then held off the Cavaliers, 81-71, on Saturday night.

Barrett hit his first five tries from 3-point range for the Blue Devils (21-2, 9-1 Atlantic Coast Conference). His fifth one gave them a 29-15 lead after less than 12 minutes of play. Cam Reddish took over after that, hitting 5 of his first 6, the last three early in the second half as the Blue Devils rebuilt their lead to 52-41. He finished with 17 points.

Kyle Guy and Ty Jerome each scored 16 to lead Virginia (20-2, 8-2), which had a 13-game home winning streak snapped. The Cavaliers lost to the Blue Devils at John Paul Jones Arena for the third consecutive time.

The game drew a sellout crowd, most hoping Virginia could avenge a 72-70 loss at Duke on Jan. 19, but it was the Blue Devils who put on a show in front of LeBron James and past stars from both schools.

Duke scored the first eight points on a pair of 3-pointers by Barrett sandwiching a steal and dunk by Williamson. The lead was 31-17 before two 3-pointers by Guy, one by Jerome and another by Kihei Clark, which fueled an 18-8 run for Virginia that closed the gap to 39-35 at the half.

After a break, it was Reddish who took over from long range, connecting three times as the Blue Devils pushed the margin to 52-41 in just over four minutes.

Virginia kept trying to close the gap, and got within 66-61 on De'Andre Hunter's 3-pointer with 5:25 left, but Marques Bolden scored in close for the Blue Devils, Williamson scored on a stickback and Tre Jones hit a pullup in the lane, boosting the margin back to 72-61.