The Hawks trailed 85-72 in the final quarter before closing out the game with a 21-3 run. Marvin Williams led Atlanta with 22 points.
Horford made a jumper with 1:24 left to trim the 76ers' lead to 88-86. Following a miss by Elton Brand, Horford scored again and was fouled by Tony Battie. He made the resulting free throw to put Atlanta in front.
The Sixers have dropped eight consecutive road games. They did not score in the final 2:18.
After Horford's three-point play, Brand missed again and Jamal Crawford missed two free throws for Atlanta. Zaza Pachulia grabbed the loose ball after Crawford's second miss, and Crawford made both foul shots this time after he was fouled again.
Jodie Meeks then lost Andre Iguodala's inbounds pass, setting up two free throws by Horford to pad the lead.
Horford and Crawford each had 15 points for the Hawks, who played their second game since losing top scorer Joe Johnson for four to six weeks with a right elbow injury.
The Sixers had won two straight but coach Doug Collins still tinkered with their lineup. Meeks, a second-year guard, made his first career start, replacing rookie Evan Turner, who had started the last 12 games. Turner moved into the lineup when Iguodala missed five games with right Achilles' tendinitis.
Collins said before the game the lineup “just has not been a great fit” with Turner and Andre Iguodala starting together.
“He knows this is not a demotion,” Collins said of Turner, the No. 2 overall pick in this year's NBA draft.
Turner averaged 12.8 points in the five games Iguodala missed but only seven points in the last four games.
“Learning to play without the ball has taken away from his aggressiveness,” Collins said.
Turner finished with 11 points and Meeks had nine.
The Hawks trailed by 18 in the first half and used a 19-5 run to cut the deficit to 72-69 late in the third. But the Sixers pushed the lead back to double figures in the fourth before faltering at the end.