Joe Harris added 15 points for the Cavaliers (9-1), and Jontel Evans had 12.
Devoe Joseph scored 16 to lead the Ducks (6-3), who lost at home for the first time in six games.
Virginia trailed at halftime, 30-28, for the only the second time this season. It was the most points allowed by the Cavaliers in the first half.
After Oregon went up 32-28 in the opening minute of the second half, the Cavaliers went on a 7-0 run, led by four points and an assist from Evans, to take a lead they wouldn’t lose.
Virginia secured the victory with a 13-4 run that made it 61-47 with 5:14 to play.