Swanson snapped a 5-all tie with a leadoff drive to center off Danny Barnes (0-1).
Freeman hit his NL-leading 14th home run, matching Yankees slugger Aaron Judge for most in the majors. It was Freeman's second homer in two games.
Matt Kemp had two hits and four RBIs for the Braves, who have won four of five after losing eight of their previous nine.
Kevin Pillar homered and had two hits for Toronto. Pillar's sixth homer, a solo shot off Jamie Garcia, was his ML-leading 51st hit.
Jose Ramirez (2-1) pitched 1 2/3 innings for the win.