Atlanta scored the game's first run in the fourth when Chris Johnson scored from third on a fielder's choice. The Phillies scored a run to tie the game in the bottom of the inning when Kevin Frandsen singled to center to score Bobby Abreu.
Frandsen's leadoff single led to the go-ahead run in the seventh. He advanced to second on a single from Cameron Rupp, moved to third on a sacrifice bunt from Reid Brignac and scored on a fielder's choice from Tony Gwynn Jr.
A throwing error by Brad Lincoln led to the tying run in the ninth.
Braves right-hander Brandon Beachy allowed one walk and struck out one in three scoreless innings. Phillies right-hander Sean O'Sullivan, who is in camp as a non-roster invitee, allowed one walk and struck out two in three scoreless innings.
Up next: The Phillies will have a split squad Thursday, hosting the Yankees on MLB.TV at 1:05 p.m. ET and traveling to Lakeland, Fla., to play the Tigers at 1:05. Miguel Alfredo Gonzalez will throw in Lakeland in the day's most intriguing pitching matchup.
Todd Zolecki is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.