Kenny Kadji added 15 points for the Hurricanes (14-7, 5-3 Atlantic Coast Conference), who blew a 16-point lead in the second half, then regrouped to claim their first victory at Cameron Indoor Stadium and just their second win over Duke since joining the ACC.
Seth Curry scored 22 points and freshman Austin Rivers added 20 for the Blue Devils (19-4, 6-2), who missed all six of their free throws in overtime and were beaten by a Florida-based conference rival for the second time this season.
Duke had plenty of chances in the extra session.
The Blue Devils trailed 75-74 with freshman Quinn Cook on the line, but he missed two free throws with 27.2 seconds left.
After Johnson missed two foul shots with 26.2 seconds left to give Duke another shot, Cook missed badly on a running jumper with about 15 seconds left. DeQuan Jones extended Miami's lead to 77-74 with two foul shots with 12.9 seconds left.
Rivers and Ryan Kelly missed 3s in the final seconds and Johnson added a free throw with one-tenth of a second remaining.
Johnson, a native of Winston-Salem, added 12 rebounds and surpassed the 25 points he scored last season against Wake Forest. He scored the Hurricanes' first four points in overtime before Malcolm Grant's open-court layup put Miami up 75-69 with 2:10 left.
Durand Scott added 11 points on 3-of-12 shooting for the Hurricanes, who had a chance to win it in regulation.
Rivers tied it at 69 with one of two free throws with 21.5 seconds left. Miami had the ball last, but Johnson passed out of a double-team in the post to Scott, who couldn't get a shot off before the buzzer.
Miami forced 14 turnovers and was cruising before going cold midway through the second half, managing only one field goal in a critical 8 1/2-minute stretch while allowing Duke to rally.
Miami went up by 16 points three times, the last on Kadji's open 3-pointer from the key that made it 53-37 with 14 1/2 minutes left. But a putback by Johnson was the Hurricanes' only field goal over the next 8 1/2 minutes.
Duke, which missed 15 of 18 shots during the stretch that put it in such a huge hole, got equally hot during the 16-2 run led by Curry that put the Blue Devils right back in it.