PHILADELPHIA (AP) -- Tyler Flowers hit a three-run homer, Dallas Keuchel struck out eight in six innings and the NL East-leading Atlanta Braves beat the Philadelphia Phillies 3-1 Wednesday night.
The Braves reduced their magic number to eight, pending Washington's result at Minnesota.
The Phillies entered two games behind the Cubs for the second NL wild-card spot.
Keuchel (8-5) gave up one run and three hits to win his fifth straight start. Chris Martin struck out the side on nine pitches in the seventh. Shane Greene worked the eighth and Mark Melancon finished for his 10th save in 10 tries with Atlanta.
Melancon got some defensive help to close it. With two runners on and one out, shortstop Dansby Swanson made a leaping catch on pinch-hitter Brad Miller's liner up the middle. Third baseman Josh Donaldson then reached over the dugout railing and snared Maikel Franco's foul pop.
Phillies starter Zach Eflin (8-12) allowed three unearned runs and three hits in 3 2/3 innings.
Donaldson reached on shortstop Jean Segura's throwing error with one out in the fourth and Matt Joyce followed with a single. After pinch-hitter Rafael Ortega struck out, Flowers drove a 2-2 fastball into the left-field seats to give the Braves a 3-0 lead.
Bryce Harper and Rhys Hoskins hit consecutive singles to start the bottom half of the inning. Harper scored on Scott Kingery's fielder's choice grounder to cut it to 3-1.
The Phillies had the bases loaded with one out in the fifth, but Harper grounded into a double play.
Harper saved a run in the ninth when he made a perfect, no-hop throw to the plate to retire Austin Riley trying to score from second on a single by Ozzie Albies.
Braves: LF Johan Camargo left the game after fouling a ball off his right leg below the knee in the fourth inning. ... RF Nick Markakis took live batting practice and threw from the outfield. He'll do it again Thursday. He could return this weekend against the Nationals.
Phillies: LF Corey Dickerson left the game with left foot soreness after grounding out in the sixth. ... RHP Edubray Ramos threw 15 pitches in a live batting practice session. It's still uncertain when Ramos could return to the bullpen.
RHP Julio Teheran (10-8, 3.31 ERA) starts for the Braves and LHP Drew Smyly (3-6, 6.65) goes for the Phillies on Thursday night.