Johnson finished with 13 points and 11 rebounds and freshman Al-Farouq Aminu scored 15 points for the Demon Deacons (17-1, 4-1 Atlantic Coast Conference).
They bounced back from last week's home loss that knocked them from No. 1 by leading the Blue Devils for nearly the entire way -- before letting a late 13-point lead slip away and recovering just in time to claim the fifth victory over a top-ranked team in school history.
Kyle Singler had 22 points and 12 rebounds for Duke (18-2, 5-1), which had its 10-game winning streak snapped.
Gerald Henderson added 20 points, and his jumper over Johnson with 10 seconds left tied it at 68, and capped the late 20-7 rally that got them back in the game.
Duke returns to action this weekend against Virginia.