Dan Uggla brought in the deciding run in the 12th inning, and Atlanta posted its ninth straight victory by outlasting Philadelphia, 5-4, in the second edition of a three-game set.

Freddie Freeman drove in two runs and Justin Upton added a solo homer for the Braves, who haven't tasted defeat since July 25 at New York.

Atlanta's run, stretching to 11-2 over the last 13 games, has opened up a comfortable double-digit lead in the NL East over second-place Washington and a 15 1/2-game edge over Philadelphia.

Luis Avilan (4-0) tossed a scoreless 11th, and Craig Kimbrel followed suit in the 12th to post his 33rd save.

John Mayberry hit a two-run shot and Jimmy Rollins finished with two hits and an RBI for the Phillies, who have dropped 12 of their last 13 games.

Jake Diekman (0-2) walked three over 1 1/3 innings, and was charged with the winning run.

Diekman began the 12th by walking Upton, who moved up on a groundout. Evan Gattis drew a free pass and Paul Janish worked a base on balls before Uggla grounded into a fielder's choice to second against Justin De Fratus which brought Upton home with the lead run. The Atlanta second baseman was safe by inches, as Phils first baseman Kevin Frandsen was pulled slightly off the bag while gloving the throw from Chase Utley.

"Everybody knows the situation. You have to beat the ball out to get a run there," Uggla said. "So everybody is going to be busting it and giving it everything they got, whatever they've got left in the tank. That's what it takes to win sometimes."

Rollins reached on a fielder's choice in the home half and moved into scoring position on a wild pitch, but Kimbrel fanned pinch-hitter Laynce Nix to end the game.

"We have a hard time getting going," Phillies manager Charlie Manuel said. "We're having a hard time playing good enough or doing enough to win. "We're playing the game out and staying there with it. We're just getting beat right now."

Phils starter John Lannan escaped a jam in the first, stranding two on with one out, and his offense clicked in the home half.

Rollins led off with a single, stole second with one out and moved to third on Gattis' wild throw, before coming in on an Utley groundout.

It was 3-0 in the second for the hosts as Darin Ruf began with a single and Mayberry reached the seats deep in left.

Upton's two-out blast to left in the third put the Braves on the board, then Atlanta moved ahead in the fifth.

Joey Terdoslavich singled and was sacrificed to second by Braves starter Brandon Beachy before swiping third. Philly third baseman Cody Asche couldn't handle an Andrelton Simmonds grounder and runners were on the corners, then Upton walked to load the bases. Freeman roped a two-run single to tie the score and Lannan exited. Zach Miner came on, but gave up the lead RBI groundout from Gattis for a 4-3 game.

Mayberry started the home seventh with a hit and was sacrificed to second, then Beachy gave way to Luis Ayala. After a groundout, Rollins' double tied the score at four apiece.

Game Notes

Atlanta has won five of eight against Philadelphia this season ... Prior to the contest, the Braves activated outfielder B.J. Upton from the 15-day disabled list and placed catcher Gerald Laird on the DL ... Ruf extended his streak of reaching base to 31 consecutive MLB appearances since Sept. 25, 2012, the longest streak for a Phillie since Chase Utley (33 in a row 9/7/08-4/22/09) ... Coming into Saturday, Lannan allowed three earned runs or less in each of his last nine starts against the Braves (since 9/25/09) ... He finished the contest by extending that run to 10 straight, giving up four runs -- two earned -- and four hits in 4 1/3 innings ... Beachy ended up allowing five hits and four runs -- three earned -- over 6 1/3 innings ... Braves third baseman Chris Johnson's streak of multi-hit games ended at eight with an 0- for-3 performance, remaining tied with Hall of Famer Hank Aaron (1959) for the longest stretch in franchise history.