Freeman added a late sacrifice fly, while Michael Bourne and Martin Prado also each knocked in two runs as the Braves won for the seventh time in eight games.
Atlanta went 1-2-3 in the first inning, but piled up 16 hits and scored at least two runs in each subsequent inning except the fourth. Mets starter R.A. Dickey (2-1) gave up eight runs -- all earned -- on eight hits in 4 1/3 innings. He allowed all three of the home runs.
Atlanta starter Jair Jurrjens was touched for seven hits and four runs in four innings. He was replaced by Cristhian Martinez (1-0), who got the win with two innings of three-hit relief.
Ike Davis led off the Mets second with a home run, but Francisco connected with his two-run shot in the bottom of the inning. David Wright doubled in two runs for New York in the third before Prado doubled in two and Uggla hit his home run for a 6-3 Atlanta lead.
New York got within 6-4 but Freeman's home run came in the fifth and chased Dickey.
New York had single runs in the sixth and eighth while Atlanta got two runs each in the sixth, seventh and eighth innings.
Kirk Nieuwenhuis had three hits and scored three runs and Wright knocked in three runs for the Mets.
McPhee, Cokas 'working on their marriage' after affair
LGBT community has 'bullied the American people': Bachmann