The Hawks used their 27th different starting lineup in a game between short-handed teams, but the result was familiar. Atlanta (41-33) has beaten Orlando 10 straight times and is now fifth in the Eastern Conference playoff race, a half-game ahead of Chicago.
Atlanta took a 45-44 lead into halftime when Josh Smith beat the buzzer off an offensive rebound as time expired. That capped a solid half for the Hawks power forward, who scored 14 of his 21 points in the first two periods.
Johnson, who received extended playing time largely because Al Horford missed his second straight game with a stomach illness, added 10 rebounds.
The Magic (19-55) tied the scored late in the third quarter, but never regained the lead.
Beno Udrih, filling in for injured point guard Jameer Nelson, led Orlando with 20 points, and center Nikola Vucevic returned to the lineup with 17 points and 15 rebounds.
Orlando outrebounded Atlanta 53-44, but was just 16-for-27 (59.3 percent) at the free-throw line.