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.
Julio Teheran (7-4), mindful of Monday's 14-inning game, went 7 1/3 innings and allowed only one earned run.
"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.
"We started nitpicking the strike zone a little too much, and started getting in hitters' counts," catcher Rob Brantly said. "That hurt us."
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.