Austin Riley sliced a double to right-center field to drive in Matt Olson in the ninth inning and give the Atlanta Braves a 1-0 walk-off victory over the visiting Arizona Diamondbacks on Sunday.
The winning rally came against Mark Melancon (3-9). With one out, Olson singled to left and Riley followed with his 31st double and second game-ending RBI of the season.
The first seven innings were dominated by each team's starters, as neither Atlanta's Max Fried nor Arizona's Merrill Kelly gave up a run. Kelly allowed three hits, two walks and struck out eight, while Fried allowed four hits -- one on a bunt -- with two walks and five strikeouts.
The winning pitcher was Kenley Jansen (5-0), who pitched around a two-out walk to throw a scoreless ninth.
Blue Jays 4, Tigers 1
Matt Chapman belted a two-run homer and Jose Berrios pitched seven strong innings to fuel Toronto's win over visiting Detroit.
Berrios (8-4) allowed one run on three hits and one walk with six strikeouts. Detroit right-hander Garrett Hill (1-3) permitted four runs, six hits and two walks with one strikeout in five innings.
Toronto closer Jordan Romano pitched a perfect ninth inning with two strikeouts to earn his 24th save of the season.
Phillies 8, Pirates 2
Kyle Schwarber and Alec Bohm homered Sunday as visiting Philadelphia pummeled Pittsburgh to complete a four-game series sweep.
J.T. Realmuto added an RBI double and Nick Castellanos two RBI singles for the Phillies, who scored five runs in the fifth and totaled 18 hits. Philadelphia starter Aaron Nola (7-8) allowed one run and six hits in six innings, with eight strikeouts and one walk.
Cal Mitchell hit an RBI double and Yoshi Tsutsugo an RBI single for the Pirates, who have dropped seven straight and eight of nine since the All-Star break.
Red Sox 7, Brewers 2
Xander Bogaerts laced the first of four consecutive two-out RBI doubles that produced five unearned runs in the fifth inning as host Boston defeated Milwaukee.
Right-hander Josh Winckowski (4-5) picked up the win, the first for a Red Sox starter in July. He went five innings, allowing two runs on seven hits. Those runs came in the second inning on Hunter Renfroe's 19th homer, which followed Kolten Wong's double.
Aaron Ashby nearly escaped the fifth when Jackie Bradley Jr. bunted into a force at third and Jaylin Davis lined out, but Bogaerts rapped a tying two-run double down the line in left. J.D. Martinez, Christian Vazquez and Alex Verdugo all followed with doubles, the last of those against reliever Hoby Milner, for a 5-2 lead.
Mets 9, Marlins 3
New York's offense banged out a season-high 19 hits, including three apiece by Francisco Lindor, Mark Canha and Jeff McNeil, to overwhelm host Miami.
The Mets swept the three-game series and matched a season high with their sixth consecutive victory. Mets right-hander Taijuan Walker (9-2) allowed seven hits, two walks and three runs while striking out four batters in 5 2/3 innings.
The Marlins finally scored in the fifth, snapping a 20-inning scoreless streak going back to Friday's series opener. Pablo Lopez (7-6) allowed six runs on a career-high 12 hits and struck out just one batter, a season low.
Cardinals 5, Nationals 0
Andre Pallante flirted with a complete-game shutout and Corey Dickerson smashed a three-run home run as visiting St. Louis beat Washington.
Pallante (4-4), a rookie right-hander, pitched a career-high eight innings. He struck out a career-best eight batters while issuing just one walk among his 96 pitches. Ryan Helsley completed the combined five-hitter.
Until the ninth, Washington's three singles off Pallante came from Nelson Cruz, Yadiel Hernandez and Tres Barrera. The loss halted what had been a positive stretch for the Nationals, who won four of six games coming into Sunday. They were shut out for the first time since July 5 at Philadelphia.
Royals 8, Yankees 6
Salvador Perez hit a go-ahead three-run homer with one out in the ninth inning off Clay Holmes and visiting Kansas City rallied for a victory over New York.
The Royals blew a late lead for the second time in the four-game series, but this time they were able to recover, snapping a five-game losing streak and earning their second win in 57 games when trailing after eight innings.
Kyle Higashioka hit an RBI single and DJ LeMahieu hit a two-run homer to start the comeback in the fifth off Zach Greinke, but the Yankees ultimately fell to 55-2 when leading after eight. New York was unable to get its 70th victory and major-league-leading 30th comeback victory.
Guardians 5, Rays 3
Cleveland made American League All-Star starter Shane McClanahan look very ordinary on its way to defeating Tampa Bay in St. Petersburg, Fla.
The Rays' McClanahan (10-4), who came into the game with a 1.76 ERA, lasted only 4 1/3 innings and was charged with five earned runs. He gave up seven hits and three walks on 96 pitches and struck out four.
A two-run single by Austin Hedges in the fifth inning drove in Franmil Reyes and Andres Gimenez to put the Guardians ahead for good. For the Rays, Ji-Man Choi had two RBIs to up his season total to 46.
Reds 3, Orioles 2
Brandon Drury's 20th homer of the season was a two-out, tiebreaking drive in the eighth that led Cincinnati past visiting Baltimore in the rubber match of a weekend interleague series.
The Orioles had just tied the game in the top of the inning on a tape measure drive by Anthony Santander off reliever Alexis Diaz (3-1) before Drury victimized Felix Bautista (3-3).
The Reds finished 6-4 on their 10-game homestand and won 12 of their 21 home games in the month. Baltimore lost consecutive games for the third time in July.
White Sox 4, Athletics 1
Jose Abreu and Eloy Jimenez hit home runs, right-hander Dylan Cease won his fourth straight start and Chicago beat visiting Oakland for the second straight day.
Joe Kelly, Kendall Graveman and Liam Hendriks combined with Cease (11-4) on a six-hitter, allowing the White Sox to take the three-game series after losing the opener 7-3 on Friday night. Cease gave up only three runs in 35 2/3 innings in July, a 0.76 ERA.
A's starter Adam Oller (1-4) who helped Oakland to wins over the Houston Astros in each of his previous two starts, worked into the seventh inning for the first time in his career and was charged with all four White Sox runs on seven hits in 6 1/3 innings. He struck out six without issuing a walk.
Rangers 5, Angels 2
Ezequiel Duran's three-run double in the ninth inning snapped a tie and lifted Texas over Los Angeles in Anaheim, Calif.
The game was tied at 2-2 heading into the ninth, but the Rangers loaded the bases with one out before Duran hit a changeup off the Angels closer into the right-center field gap.
Angels starter Reid Detmers, who has a 1.13 ERA over his past four starts, gave up two runs (one earned) on three hits and three walks in seven innings. He also had a career-best 12 strikeouts.
Astros 3, Mariners 2 (10 innings)
Yordan Alvarez smacked a walk-off single in the 10th inning and Houston claimed its four-game series against visiting Seattle with a victory.
Alvarez, who was 0-for-4 with two strikeouts entering the 10th, bounced a single into left field off Mariners left-hander Brennan Bernardino (0-1), scoring Mauricio Dubon from third base. Bernardino, the sixth Mariners pitcher of the game, was making his major league debut.
Trailing 2-0 entering the eighth, the Mariners staged a two-out rally against Astros reliever Ryne Stanek. Adam Frazier worked a five-pitch walk before Jesse Winker drilled a first-pitch fastball into the right field seats, his ninth home run on the season, to deadlock the score.
Padres 3, Twins 2
Jurickson Profar homered and later scored the winning run on a bloop single to right by Luke Voit as San Diego defeated visiting Minnesota in the rubber match of a three-game series.
Twins starter Dylan Bundy (6-5) took the loss, giving up three runs -- two being homers -- on just four hits and no walks with three strikeouts in five-plus innings.
Sean Manaea (6-5) picked up the win for the Padres, holding the Twins to two solo home runs among four total hits and three walks with seven strikeouts over six innings. Luis Garcia picked up his first save for the Padres after Bob Melvin at least temporarily relieved the struggling Taylor Rogers of his closer duties earlier in the week.
Dodgers 7, Rockies 3
James Outman homered in his first major league at-bat and finished with three hits, Freddie Freeman also had three hits and Los Angeles beat Colorado in Denver.
Brian Serven homered, and Randal Grichuk had two hits for Colorado. Rockies outfielder Kris Bryant left the game in the seventh inning due to left foot soreness stemming from aggravation of plantar fasciitis.
The Dodgers failed to score in the first inning for the first time in the four-game series, but they took the lead in the third off of starter German Marquez. Bellinger led off with a single and Outman, recalled from Triple-A Oklahoma City on Saturday, belted a homer on the third major league pitch he saw.
Giants 4, Cubs 0
Carlos Rodon struck out 10 over seven innings and the bottom five hitters in the order provided all of the offense as San Francisco made it three out of four against visiting Chicago.
Jason Vosler and Austin Wynns drove in two runs apiece while Dixon Machado, acquired earlier in the day from the Cubs, got on base twice via a single and a hit batsman and scored once for the Giants, who finished the month of July just 11-17 despite their 3-1 series win over Chicago.
Ian Happ and Seiya Suzuki had the Cubs' only hits against Rodon. Chicago never got a runner past first base against the left-hander.
--Field Level Media