MIAMI — Julio Teheran was in complete control.

The right-hander allowed three hits over six scoreless innings and the Atlanta Braves beat the Miami Marlins 3-1 on Saturday night.

“That might be as crisp and as good I’ve seen Julio since I’ve been here,” Braves manager Brian Snitker said. “And he’s pitched some really good ball games. His stuff – I thought the ball was coming out of his hand really good. He pitched around some trouble. It was a real solid outing.”

Nick Markakis had three hits and drove in a run, Darby Swanson also drove in a run, and Matt Kemp extended his hitting streak to 13 games with a single in the eighth for the Braves.

Teheran (3-3) beat the Marlins for the first time in seven starts. He struck out four and walked two while throwing 94 pitches.

“It was a really good outing I felt after two rough ones,” Teheran said. “I’ve been working hard to get back and pitch well and like I pitch. Everything was working today, getting ahead, competing.”

Jim Johnson pitched a perfect ninth for his sixth save in eight chances.

Justin Bour homered in the third consecutive game for the Marlins, who have lost five straight and 14 of their last 17, dropping to last place in the NL East behind the Braves.

“You can’t quit right now, it’s May,” Marlins centerfielder Christian Yelich said. “If everyone in here quits it’s going to be a pretty long year. Obviously it’s a really tough stretch. It’s been hard. It’s been five in a row we’ve lost and that’s never fun, but it happens. Like Donnie (Mattingly) said you can’t fold up shop yet. It’s not even Mother’s Day yet.”

The retractable roof and operable walls were open for the fifth straight game, which is the most in a row since Marlins Park debuted in 2012. The Marlins are 0-6 with the roof open this season.

Miami’s Edinson Volquez (0-5) made his first start since May 2 after being reinstated from the disabled list due to a blister on his thumb and allowed two runs and four hits in six innings.

“I feel good,” Volquez said. “My blister didn’t bother me today and I was able to make a lot more pitches tonight. I can’t blame anybody for the loss. Whatever happens over there is part of the game. There’s nothing to complain about.”

Volquez did not allow a hit until the fourth inning when Freddie Freeman’s fly ball dropped in for a double as left fielder Marcell Ozuna lost the ball in the lights.

“It’s one of those balls that gets up in a certain time of night,” Marlins manager Don Mattingly said. “Usually when you play outdoors there’s that certain time of night you’ll always see guys that say, ‘Hey make sure we’re pointing’ because that ball just gets lost at that time of day.”

Freeman scored on a base hit by Markakis, who scored on a base hit by Swanson later in the inning for a 2-0 lead.

“Great, especially off a guy like that,” Swanson said. “He’s tough. He’s got three good pitches, especially how he can command his stuff. He’s tough to square up. You saw it tonight with our bats. We just kept grinding out our at-bats.”

Bour hit a home run off Eric O’Flaherty to lead off the seventh cutting the deficit to 2-1. It was Bour’s first career home run off a left-handed pitcher in 135 plate appearances.

Kemp’s infield hit in the eighth to charging third baseman Derek Dietrich led to a run when Dietrich’s throw went past Bour at first base.

Marlins’ right-hander Brian Ellington was optioned to Triple-A New Orleans to make room for Volquez.

FIFTY FOR TEHERAN

Teheran recorded his 50th career victory after making his Major League debut with the Braves as a 20-year-old in 2011.

“I know it’s 50, but hopefully we have a long way to go and you have to stay healthy,” said Teheran, who is 50-43 over 137 starts.

TRAINER’S ROOM

Marlins: LHP Wei-Yin Chen (arm) had a bullpen session cut short on Saturday due to discomfort. “It didn’t go as well as we would have liked today so we’ll just see where that goes,” Mattingly said. “So we’re at a little bit of a holding pattern with Wei-Yin.”

UP NEXT

Braves: RHP R.A. Dickey (3-2, 4.29 ERA) will start the series finale Sunday. Dickey is 10-2 with a 2.87 ERA in 15 games, 13 starts, over his career against the Marlins.

Marlins: LHP Justin Nicolino will make his season debut on Sunday. Nicolino went 3-6 with a 4.99 ERA in 18 appearances with 13 starts last season.