The Braves scored four times in both the third and fifth innings in handing Houston its sixth loss in seven games.
Freeman had an RBI single in the first and hit a two-run homer in the third. Gonzalez delivered a solo shot in the third and doubled home two more in the fifth.
Erik Hinske and Chipper Jones had solo homers for the Braves, who have reached a season-best eight games above .500.
Tim Hudson (5-5) allowed two runs on seven hits with four strikeouts over six innings to get the win. He had gone 0-3 during his five previous starts.
Michael Bourn had four hits for Houston, equaling his career high, and was a home run short of the cycle. Aneury Rodriguez (0-4) surrendered six hits and six runs in four-plus innings to suffer the loss.