The Braves, powered by home runs by Yunel Escobar and Omar Infante, took a 4-0 lead in the first inning.
Hanson (9-2) gave up four hits and three runs in seven innings. He walked three and struck out seven to improve to 4-0 in August. The right-hander has not allowed more than seven hits or three runs in any of the four starts this month.
Mike Gonzalez and Rafael Soriano, who pitched the ninth for his 19th save, combined for two perfect innings in relief of Hanson.
The 22-year-old Hanson faced the minimum 12 batters though four innings before giving up three runs in the fifth. Chris Volstad (9-10) gave up six hits and four runs in four innings.
The Braves won for the first time in five home games against the Marlins this season.
Infante, who has made a combined 24 starts at three infield positions, made his first start of the season in left field. He made a running catch of Chris Coghlan's line drive to open the game.
Infante's leadoff homer started the Braves' four-run first inning. Volstad walked Kelly Johnson before giving up a run-scoring single to left by Adam LaRoche and Escobar's two-run homer for a 4-0 lead.
LaRoche had two hits and is hitting .422 with 16 RBIs in 19 games since his July 31 trade to Atlanta from the Boston Red Sox.
Florida's first hit was Jeremy Hermida's single with two outs in the fifth, following Hanson's walk to John Baker.
Wes Helms hit a double to left to drive in Baker. Hermida and Helms scored on a pinch-hit single by Jorge Cantu, cutting the Braves' lead to 4-3.
The Braves loaded the bases off Brian Sanches and Renyel Pinto in the seventh but couldn't score. Pinto walked Chipper Jones to load the bases. With the Turner Field crowd of 35,200 standing and cheering, Pinto struck out LaRoche on a 3-2 pitch to end the threat.
? NOTES: Escobar's homer was his first since July 23. ... Infante's sixth career leadoff homer gave the Braves home runs in eight straight games. ... Braves OF Ryan Church was held out with back spasms. The Braves also were missing OF Garret Anderson with an inflamed sciatic nerve in his back and INF Martin Prado (exertional headaches). ... Marlins 1B Nick Johnson (sore right hamstring) missed his sixth straight game.