MIAMI -- Giancarlo Stanton reached a team milestone on Friday night, but the Marlins were unable to hold their share of first place in the National League East.
On a night Stanton blasted a two-run homer early, the Braves rallied late off Tom Koehler.
Jason Heyward delivered an RBI triple, and B.J. Upton came through with a sacrifice fly that lifted Atlanta to a 3-2 win at Marlins Park.
If the Marlins are to make a serious push all season, Koehler notes it will come down to executing in crucial moments.
"It comes down to doing all the little things right," said Koehler, who had his fifth start of at least seven innings. "You've got to execute quality pitches throughout the whole game. You can't take a batter off. You've got to lock it in.
"That's how we're going to win these games, minimizing mistakes. You've got to stay focused the whole way through."
A couple of missed pitches proved the difference in the series opener.
The Marlins struck quickly off Julio Teheran, when Stanton blasted a two-run homer in the first inning.
"I think Teheran just made really the mistake to Stanton," Miami manager Mike Redmond said. "After that, he was really tough. He got ahead of guys and threw his offspeed pitches for strikes. He's got pretty good numbers. He did a good job after giving up the two, kept them in the game."
Stanton, in Miami's 54th game, became the first Marlins player in history to reach 50 RBIs prior to June 1. Previously, Mike Lowell reached 50 RBIs in game No. 57 in 2001.
After allowing Stanton's blast, Teheran didn't give up anything else. The right-hander settled and scattered five hits over 7 1/3 innings.
"I feel like that was the only mistake that I made," Teheran said. "When you make a mistake, you pay for it, and the rest of the game, it was just concentrating and I was focusing in the game and just trying to not make mistakes. I think I finished good."
Miami and Atlanta were tied for first coming into Friday, and now the Braves hold a one-game advantage.
The Marlins fell to 20-9 at home, where they've lost three of their last four. Still, they have a chance to pull even again with the Braves with a win on Saturday.
"I think as a team, we're playing good baseball," Koehler said. "We have a chance against a team that's in front of us to come out and play two more games. Obviously, you want to get the first one, because that sets the tone. It didn't happen tonight. I'm pretty confident the boys will come tomorrow and we'll get this thing going again."
As much as Teheran silenced Miami with his arm, it was his hitting that helped the Braves claim the lead in the seventh inning.
Teheran was 2-for-25 at the plate before the Braves right-hander chipped in with two hits on Friday. The second one, a double to lead off the seventh inning, ignited a two-run rally.
Atlanta trailed 2-1 entering the seventh. But it took three batters in the inning for the lead to swing. Teheran doubled down the right-field line and scored on Heyward's hit to left-center.
"There's not much you can really do about that," Koehler said of the hit by Teheran. "You've got to bear down and make quality pitches to the next hitter and kind of forget about it. Leaving a ball up away, Heyward did a good job of staying with it and hitting it into the gap."
Upton lined out to Christian Yelich in left, and Heyward scored easily on the sacrifice fly, giving Atlanta the lead for good.
Teheran entered Friday night with a streak of 15 straight scoreless innings, spanning his previous two starts.
Stanton put a halt to that with his two-run blast in the first inning. Ed Lucas got the inning going with a one-out single to right. Stanton, after lifting a long foul ball to left, capped his at-bat with a towering homer to dead center. According to ESPN Stats and Info, the home run traveled an estimated 450 feet.
Koehler kept the Braves off the board through five innings, but the right-hander had to work because he had issued three walks, hit two batters and allowed three hits in the process.
In the sixth inning, a leadoff walk came back to hurt Koehler. Justin Upton drew a walk and advanced to second on Evan Gattis' single to right. Chris Johnson swatted an 0-2 breaking ball into left field for an RBI single.
The Marlins threatened in the eighth inning when Adeiny Hechavarria led off with a single off Teheran. Donovan Solano's pinch-hit sacrifice bunt put the tying run in scoring position. But Luis Avilan retired Yelich on a fly ball to deep center, moving Hechavarria to third. The inning ended when David Carpenter got Lucas on a ground ball to first.
The way Teheran set the tone, it put Atlanta in position for Craig Kimbrel to notch his 14th save.
"Teheran bounced back pretty quickly after that 'G' home run in the first, and shut us down the rest of the night," Lucas said.