Sulaimon finished with a season-high 21 points and Rodney Hood added 14 for the Blue Devils (13-4, 2-2 Atlantic Coast Conference).
Debuting at their lowest ranking since the last time they fell out of the AP Top 25 in February 2007, they let an 11-point lead with 3½ minutes slip away before avoiding a third loss in four games.
They erased that deficit by scoring 11 consecutive points, then took their first lead of the game when Brogdon's free throws with 36.5 seconds remaining made it 65-64.
Amile Jefferson grabbed Hood's air ball and kicked it out to Sulaimon who was waiting alone in the left corner.
His 3-pointer bounced high off the rim and dropped through to put Duke up 67-65.
Akil Mitchell threw the ball away but Jefferson gave it right back to Virginia before Harris missed a layup with about 10 seconds left.
Jefferson, a 41 percent free throw shooter entering the game, iced it with two free throws with 6.8 seconds remaining.
Jefferson finished with 10 points and 15 rebounds for Duke, which denied Virginia both its first victory at Cameron Indoor Stadium and first 4-0 start to ACC play since 1995.
For much of this one, the Blue Devils looked nothing like preseason ACC favorites or top 10 mainstays. They were coming off a 10-day stretch in which they dropped road games at Notre Dame and Clemson.
But they didn't escape with their 26th straight win at Cameron before things got tense: After Quinn Cook's layup with 4½ minutes remaining, Duke didn't hit another field goal until Sulaimon's timely 3.
Virginia — which was at or near 50 percent shooting in its last two games, including a 31-point rout of North Carolina State two nights earlier — struggled to hit anything early against a once-wobbly Duke defense while three times falling behind by 13 points.
They held the Blue Devils well below their ACC-leading average of 82.7 points per game and tightened things up by shooting 43.8 percent in the second half.