He also grabbed 12 rebounds, helping Duke to a 43-30 advantage on the glass.
Virginia (10-3, 0-2) was seeking its third victory in its last four games against Duke at University Hall, but instead lost for the 17th time in the last 19 meetings. Duke now leads the all-time series 102-47.
Duke's J.J. Redick , a Roanoke native, set an ACC record for most consecutive free throws made midway through the first half when he made both ends of a one-and-one. It gave him 50 consecutive free throws made dating to last season, breaking the record of 48 set by Virginia's Jeff Lamp during the 1979-80 season.
Redick also was 4-for-5 from 3-point range and finished with 14 points. Chris Duhon added 15, Shavlik Randolph and Luol Deng 12 each and Daniel Ewing 11. The Blue Devils shot 52 percent, Virginia 40 percent.
Duke led 46-38 at halftime and used a 10-0 burst early in the second half to push its lead to 63-45. Virginia started slowly coming back, but Williams scored 13 of Duke's next 15 points, repeatedly outmuscling the Cavaliers close to the basket and scoring or making his free throws.
He finished 6-for-12 from the field, 9-for-10 from the line.
Virginia never got closer than 11 after the 10-0 spurt.
Virginia used a 13-4 run to take a 30-28 lead with just under eight minutes left in the first half, but Duke answered immediately. Deng scored six points in a 16-8 burst to end the half, including a 16-foot rainbow that just beat the buzzer after he rebounded his own missed 3-pointer.