Johnson hit a right-handed runner to give Atlanta an 82-80 lead with 2:19 to play, then added a two-handed runout jam to extend it. The Hawks got two offensive rebounds on a last-minute possession, and Mike Bibby added a pair of free throws for a more comfortable cushion.
Marvin Williams added 16 points, Flip Murray finished with 14 and Mike Bibby scored 13 for Atlanta, which is off to a 5-0 start for the first time since starting the 1997-98 season with 11 straight wins.
Kevin Durant led the Thunder with 20 points, rookie Russell Westbrook scored 15 and Joe Smith had 14 points and nine rebounds.
Oklahoma City had its biggest lead of the game after Durant capped a 7-0 run with his three-point play to make it 75-68 with 6:45 left, but the Thunder went more than 5 minutes without a field goal as the Hawks charged back into the lead.
Murray, who saw extended minutes down the stretch with Josh Smith (sprained left ankle) out, scored the first nine points in Atlanta's 12-2 run, and Williams' 3-pointer from the right side put the Hawks up 80-77. Joe Smith scored the next three points on free throws to tie it at 80, but Johnson answered right away to put Atlanta up for good.
Without Josh Smith, Atlanta started out big with 6-foot-11 center Zaza Pachulia taking his place in the lineup. That strategy didn't last long, as Pachulia picked up two fouls in the first 2:40 and went to the bench for the rest of the half.
The Hawks still took advantage of another slow Oklahoma City start to open an early 17-6 lead, but Westbrook scored two quick baskets after coming off the bench to start the Thunder's comeback.
Earl Watson drove for a layup to give Oklahoma City its first lead in the final 2 minutes of the first half, and the Thunder led 41-38 after scoring the last six points before halftime.
Notes: The Thunder missed a sellout for the second straight Sunday night. Attendance was 18,231, about 900 short of capacity.... Oklahoma City lost reserve F Chris Wilcox to a sprained right knee in the first quarter.... Atlanta came in with the NBA's second-best defense, allowing 86 points per game, while Oklahoma City had the league's second-worst offense, averaging 86.4 points.