It was the first true road win of the season for the Blue Devils, who suffered just eight turnovers and outrebounded the Hurricanes by 11.
Duke gained revenge for a 27-point loss to Miami a year ago when the Blue Devils were ranked No. 1 in the nation.
Rodney Hook added 12 points for Duke (15-4, 4-2 Atlantic Coast Conference), which has won three in a row.
Donnavan Kirk had 13 points to pace Miami (10-8, 2-4 ACC).
The win was the 899th for Mike Krzyzewski as Duke coach. He can become the second coach in NCAA Division I history to win 900 games at one school when Duke meets Florida State on Saturday.