CINCINNATI — Dan Uggla hit a pair of solo homers, and Juan Francisco added his first career grand slam as the Atlanta Braves recovered from a stunning last-swing loss by beating the Cincinnati Reds 7-2 Wednesday.

Atlanta took two of three in the series, the first the Reds lost at home this season. The Reds are 13-6 at Great American Ball Park, the most home wins the majors.

Atlanta came into the game tied with Colorado for the NL lead with 44 homers.

Uggla had solo shots in the fourth and sixth innings off Mike Leake (2-2), his first multihomer game this season. Leake pitched into the eighth, ending a streak of six subpar starts by the Reds rotation.

Francisco’s slam off J.J. Hoover highlighted a five-run eighth inning. The Braves obtained Francisco in a trade with the Reds last year for Hoover.

Jordan Schafer had three hits, and Andrelton Simmons had a career-high four hits in the top two spots in Atlanta’s lineup.

Left-hander Mike Minor (4-2) allowed four hits in seven innings, including Zack Cozart’s homer in the third. Jay Bruce had a solo shot in the ninth off Anthony Varvaro.

Uggla homered in the fourth to tie it at 1. Uggla is 4-for-10 career off Leake with three homers.

Diamondbacks 3, Dodgers 2: In Los Angeles, Paul Goldschmidt homered twice, including a tie-breaking shot for the second straight game, for the Arizona Diamondbacks.

Wade Miley (3-1) outlasted Kershaw in a matchup of two of the best left-handed starters in the NL over the past two seasons.

Miley allowed two runs and seven hits in 7.2 innings, struck out four and walked none.

Cardinals 5, Cubs 4: In Chicago, Carlos Beltran and Jon Jay drove in two runs apiece for St. Louis.

Beltran had three hits as the Cardinals won for the seventh time in eight games and improved to a major league-best 14-7 on the road.

The Cardinals trailed 4-3 before Beltran singled in Matt Carpenter in the seventh, and Jay drove in Yadier Molina with a tiebreaking single against Michael Bowden (1-2) in the eighth. Each rally featured a costly mistake by the Cubs, with Carpenter moving to third on an error by right fielder Nate Schierholtz and Molina advancing to second on a wild pitch.

Anthony Rizzo had three hits, and Schierholtz hit a two-run double for Chicago. Chicago had 11 hits but grounded into four double plays, one in every inning from the fifth to the eighth. The last one happened with the potential tying run on third.

Giants 4, Phillies 3, 10 innings: In San Francisco, Andres Torres lined a game-ending single to right field with two outs in the 10th inning for the Giants.

Javier Lopez (1-0) pitched the 10th for the win after Sergio Romo blew his second save in 14 opportunities, failing to finish off Barry Zito’s gem.

Buster Posey hit a pinch-hit single to start the 10th against Antonio Bastardo (1-1) and was sacrificed to second by Joaquin Arias. Posey advanced to third on a wild pitch before Torres came through with his fourth career game-ending hit.

Padres 1, Marlins 0: In San Diego, Jason Marquis outpitched Ricky Nolasco, Yonder Alonso had a sacrifice fly in the sixth inning for the Padres.

Marquis (4-2) allowed five hits, walked one and struck out three in eight innings, his longest stint since last Aug. 11th when he had a 5-0 shutout at Pittsburgh.

Nolasco (2-4) gave up one run and four hits, with one walk and nine strikeouts in seven innings.