Shin-Soo Choo hit a leadoff home run and Brandon Phillips added a two-run shot in the first inning off Randall Delgado (0-1).
That was plenty of offence for Latos (7-1), who allowed a run on six hits with one walk in 7 2-3 innings.
Latos, coming off his first loss in 21 starts, didn't strike out anyone in the first two innings, then fanned 13 over the next 5 2-3.
After blowing a save in Cincinnati's 4-3 loss on Saturday, Aroldis Chapman gave up a run in a shaky ninth but still got his 19th save.
The loss snapped Arizona's four-game winning streak.
BRAVES 7 BREWERS 4
MILWAUKEE (AP) — Brian McCann hit an early grand slam and Atlanta got solo home runs from Chris Johnson and Jordan Schafer in a victory over Milwaukee.
Beaten 2-0 by the Brewers on Friday and Saturday, the Braves entered the game scoreless in 24 consecutive innings. The streak came to a quick end when McCann smacked a two-out shot to left-centre in the first inning off Alfredo Figaro (1-2) for his 10th career slam.
Brewers outfielder Carlos Gomez sprained his left shoulder when he fell awkwardly near the centre-field wall while making a leaping catch of Andrelton Simmons' drive in the fourth. Gomez, hit in the left knee by a pitch earlier in the game, immediately left the field clutching his shoulder.
Schafer had four hits, including a double. McCann also reached base safely four times in five trips.
The Braves, who lead the NL East despite getting shut out a major league-high 11 times this season, snapped an eight-game losing streak at Miller Park dating to April 2011.
Jonathan Lucroy hit a two-run homer off winner Paul Maholm (8-6). Five Braves relievers held Milwaukee scoreless over the final four innings. Craig Kimbrel earned his 21st save in 24 attempts.
DODGERS 3, PADRES 1
SAN DIEGO (AP) — Adrian Gonzalez and Hanley Ramirez hit back-to-back home runs in the ninth inning to lift Los Angeles over San Diego.
Gonzalez, the former Padres star, broke a 1-all tie with a drive to right field off closer Huston Street. Ramirez hit the next pitch to right-centre to help the Dodgers split the four-game series. It was the second home run in two days for both players.
Street (0-4) has given up 10 home runs in 26 1-3 innings.
Brandon League (3-3) got the last out in the eighth and Kenley Jansen earned his fourth save.
Padres starter Andrew Cashner allowed one run in eight innings. Juan Uribe broke a scoreless tie with a two-out double in the seventh that drove in Gonzalez.
Carlos Quentin homered against reliever Peter Moylan in the bottom half.
METS 8, PHILLIES 0
PHILADELPHIA (AP) — David Wright homered, tripled and matched a Mets record with four extra-base hits to back Matt Harvey's splendid start in a lopsided victory over Philadelphia.
Wright went 4 for 5 with two of New York's season-high seven doubles to help the Mets take two of three in Philadelphia after winning a five-game series at first-place Atlanta.
Given a rare heaping of run support, Harvey (7-1) allowed two hits in six innings and struck out six to earn consecutive wins for the first time since mid-April. The 24-year-old righty threw a season-low 72 pitches — his outing was cut short by a 20-minute rain delay in the seventh.
Harvey also hit an RBI double to deep right-centre and scored in a three-run fifth that made it 4-0.
John Lannan (0-2) unraveled in the fifth after a three-base error by centre fielder Ben Revere.
ROCKIES 7, NATIONALS 6
WASHINGTON (AP) — Michael Cuddyer homered in his first at-bat to extend the longest hitting streak in the majors this season to 21 games, and Colorado hung on to beat Washington.
Cuddyer went 3 for 4 with four RBIs to break a tie with St. Louis third baseman David Freese for the year's top streak, and the Rockies right fielder is two games shy of matching the franchise's best run.
Cuddyer also extended his Colorado record for consecutive games reaching base to 40.
Nolan Arenado homered to help the Rockies build a 7-0 cushion for Jorge De La Rosa (8-4), who went six innings.
Ross Detwiler (2-6) allowed a season-high seven earned runs and nine hits in 3 2-3 innings.
MARLINS 7, GIANTS 2
SAN FRANCISCO (AP) — Justin Ruggiano hit a leadoff homer to get Miami started and added a two-run shot in the ninth, leading the Marlins to their 10th win in their last 11 games at San Francisco.
Nathan Eovaldi (1-0) held the Giants in check into the seventh inning and Marcell Ozuna hit an RBI double and a solo homer as the Marlins beat Matt Cain (5-4) and a struggling San Francisco bullpen.
The defending World Series champions dropped three of four at home to the team with the worst record in the National League, scoring just eight runs in the four games.
The Giants did end a 90-inning home run drought when Hunter Pence led off the seventh with his 12th to cut Miami's led to 3-2.
RANGERS 2, CARDINALS 1
ST. LOUIS (AP) — Ian Kinsler singled in the tiebreaking run in the seventh inning after the Rangers knocked 10-game winner Adam Wainwright out of the game, and Texas completed a soggy, three-game sweep of St. Louis.
The finale of Texas' first visit to Busch Stadium since losing Games 6 and 7 of the 2011 World Series, and first time ever in the regular season, was delayed 2 hours and 59 minutes by heavy rain.
Rookie Nick Tepesch allowed a run on four hits in 5 2-3 innings for Texas, which has won five in a row after losing six straight.
The Cards, who have the majors' best record at 47-29, were swept for the first time this season.
Wainwright (10-5) allowed an earned run in 6 2-3 innings with six strikeouts and one walk. Matt Carpenter homered for St. Louis.
Robbie Ross (4-1) got the last out of the sixth to earn the win for Texas.
CUBS 14, ASTROS 6
CHICAGO (AP) — Ryan Sweeney had a career-high six RBIs, including a three-run homer, as Chicago routed Houston.
Sweeney drove in runs in each of his first four at-bats, capping the stretch with his homer. He also had two doubles and a run-scoring grounder.
Anthony Rizzo added a two-run homer and finished 3 for 3 with four runs and four RBIs.
Chicago scored its most runs and had its most hits (16) this season. All nine starters reached base for the Cubs.
Jeff Samardzija (5-7) went seven innings to win his second straight. He gave up four runs, three earned, and did not walk a batter for the first time this season.
Jordan Lyles (4-2) lost for the first time since May 12.