Evan Gattis went 2-for-5 with two RBI to lead the Atlanta Braves to a 4-3 win over the Miami Marlins in the second of a four- game set at Marlins Park.
Chris Johnson went 2-for-4 with one RBI and Brian McCann also drove in a run for the Braves, who reduced their magic number for clinching the NL East to seven.
Julio Teheran (12-7) allowed three runs on five hits and three walks while striking out six over 6 2/3 innings. Craig Kimbrel spun a scoreless ninth to notch his MLB-leading 46th save.
"It is definitely good to come out on top. Julio pitched really well to give us a chance all game, and fortunately we scored some runs," Gattis said.
Giancarlo Stanton, Logan Morrison and Donovan Solano drove in one run apiece for the Marlins, losers in four straight.
Tom Koehler (3-10) yielded four runs on eight hits and three walks over five innings to drop his fourth straight decision.
Atlanta scored two runs in the first inning. Freddie Freeman singled, then scored on Gattis' double to center. McCann followed with a double to push Gattis across.
The Marlins countered with three runs in the home half. Ed Lucas singled and Christian Yelich walked with one out. Stanton then ripped a double to center to score Lucas and Yelich came home on Morrison's bloop single to center. Stanton came around on Solano's groundout to give the Marlins the lead.
The Braves pushed a pair of runs across in the third to take the lead for good. Back-to-back singles from Justin Upton and Freeman put two on for Gattis, who ripped an RBI single up the middle. After McCann grounded out, Johnson singled home Freeman to give Atlanta a 4-3 edge.
The Marlins wasted a pair of opportunities to score late in the game.
In the seventh, Braves reliever Luis Avilian hit Yelich with a pitch to load the bases with two out for Stanton, but Luis Ayala got the Marlins' slugger to strike out to end the frame.
In the ninth, Placido Polanco stroked a one-out double off Kimbrel, who struck out Chris Coghlan but then skipped a slider past McCann behind the plate.
The ball bounced right back to McCann, who fired to third. Pinch-runner Jake Marisnick retreated back to second, but ran out of the baseline to avoid a tag and end the game.
"That was a rough loss. We're finding new ways to lose. It was a tough bounce, you can't really fault anyone for that," Lucas said.
Johnson recorded his 46th multi-hit game of the season ... Upton was replaced by his brother, B.J., in the fourth inning after fouling a ball off his leg ... Atlanta was 3-for-16 with runners in scoring position ... Koehler hasn't won since Aug. 1 ... Miami went 2-for-6 with RISP.