MIAMI -- After the final out, Justin Upton made a beeline for his brother in the Atlanta Braves outfield, and they shared a happy hand slap. Both were key contributors in a victory, which hasn't happened often this year.

Justin Upton homered, doubled twice and scored three runs, while B.J. had two hits, drove in a run and scored to help beat the Miami Marlins 6-4 Tuesday night.

"They both had great at-bats," manager Fredi Gonzalez said. "It's a long season. We're always wishing for more, but there are going to be ups and downs, and you have to be patient with the guys."

Justin Upton doubled home a run in the third, doubled and scored to make it 4-all in the fifth, then hit his 16th home run -- but first since June 12 -- leading off the seventh against reliever Ryan Webb.

In Monday's 14-inning marathon, Upton hit a two-run double to put Atlanta ahead in the final inning.

"He's starting to swing it like he did early in the season," Gonzalez said. Upton had 12 homers after just 23 games.

His brother has been languishing below .200 but showed signs of shaking out of his slump by hitting the ball hard in all four at-bats. He had a sacrifice fly and raised his average to .178 with two hits. He also was robbed of an RBI single on a leaping grab by third baseman Ed Lucas.

"I'm starting to feel a lot better at the plate and hitting the ball hard," B.J. Upton said. "They're not always going to fall, but I'm starting to see my work pay off, and I definitely feel a lot better up there."

Justin Upton said it's fun to share success with his brother.

"He has stung a few balls right at people on this trip," Justin said. "He's got to keep swinging and they'll fall."

Pitchers for the two teams combined to retire 30 consecutive batters Monday, when Atlanta won 7-1 in 14 innings. The second game of the series was a slugfest by comparison, with the Uptons leading the way.

They helped the Braves overcome deficits of 3-1 and 4-3. Atlanta leads the NL with 27 come-from-behind wins.

"I told the bullpen, `I've got this game," Teheran said. "I wanted them to rest. When they took me out, they were like, `I thought you were going nine innings.' I said, `Sorry, I tried."

All-Star closer Craig Kimbrel pitched a perfect ninth for his 24th save in 27 chances, and Atlanta improved to 12-2 at Marlins Park since it opened in 2012. On Wednesday, the NL East leaders will try to complete their first sweep of a road series since April 12-14.

The Marlins, who have the NL's worst record, lost their fifth game in a row.

Henderson Alvarez (0-1) allowed five runs, four earned, in six innings. The start was his second after he missed the first three months of the season because of shoulder inflammation.

An unearned run put the Braves ahead to stay in the sixth. Alvarez fielded Teheran's swinging bunt and threw wildly past first for an error, allowing B.J. Upton to score from second base.

"What we've seen is when we make a mistake, they've been able to make us pay for it," Marlins manager Mike Redmond said. "We gave them a run there on the error, and we don't have enough offense to give away runs."

Brantly hit his first home run of the season, a three-run shot with two outs in the second. The runs were all unearned because they scored following a one-out error by third baseman Chris Johnson.

The Braves went ahead in the second when Freddie Freeman led off with a double, advanced on a groundout and scored on B.J. Upton's sacrifice fly. That was Upton's 20th RBI in 266 at-bats.

Game notes
Braves RHP Cristhian Martinez, sidelined since April, underwent season-ending surgery to repair his injured shoulder. The team hopes he'll be ready for the start of spring training in 2014. ... Atlanta RHP Brandon Beachy (elbow) allowed three hits and two runs in three innings during a rehab start for Triple-A Gwinnett against Norfolk. ... Before the game, the Marlins recalled LHP Duane Below from Triple-A New Orleans. ... The retractable roof was closed after being open at the start of Monday's game. ... Campaigning for Freeman, an All-Star game candidate as one of the final NL five, Braves players wore T-shirts before the game that read, "Hug for votes (hash)VoteFreddie."