The Blue Devils (15-2, 4-1 Atlantic Coast Conference) bounced back from an overtime loss to Syracuse that could cost them their top ranking. They avoided their first two-game losing streak at home since 2016 and proved they can win without injured point guard Tre Jones.
DeAndre Hunter scored 18 points, and Ty Jerome and Kyle Guy had 14 apiece for the Cavaliers (16-1, 4-1), who entered as the nation's last unbeaten after No. 2 Michigan was upset at Wisconsin earlier in the day.
The fourth matchup of top-ranked teams in the sport's history -- Virginia entered at No. 1 in the coaches' poll -- was a tournament-caliber game throughout. There were 14 ties and 15 lead changes, and it was a one-possession game for a 14 1/2-minute stretch of the second half.
After the Cavaliers missed 11 of 12 shots during a late nine-minute stretch, they pulled within 69-66 on Guy's 3-pointer with 23 seconds left. Barrett hit two free throws with 20.9 seconds to play, and Virginia let too much time elapse before Braxton Key was fouled with 8.9 seconds remaining and hit both shots to make it 71-68.
Cameron Reddish hit a free throw to make it a four-point game before Hunter hit a jumper before the buzzer for Virginia.