Tucker hit a two-run single and a three-run homer as the Astros won their second straight game to claim the three-game series. Jose Abreu drove in two runs and Jose Altuve had an RBI single, two walks and two runs.
Houston starting pitcher J.P. France (3-3) blanked the Cardinals on four hits over seven innings. He reached the quality start metric for the fifth straight game.
Cardinals veteran Adam Wainwright (3-3) retired just five batters in his 400th career start. He allowed six runs on six hits and three walks.
Taijuan Walker allowed one run over six innings and Bryce Harper delivered a tiebreaking, two-run single in the third inning as Philadelphia recorded a ninth straight road victory.
Ex-Cub Kyle Schwarber clubbed the first pitch of the game for his 21st home run, helping Philadelphia complete a three-game sweep of the Cubs to extend its longest road winning streak since a nine-game run in 1984. The Phillies have won four in a row overall and 18 of their past 23.
Walker (8-3) matched a career high by winning a fifth consecutive start. He has allowed three runs over 32 innings (0.84 ERA) over those outings.
Chicago scored six runs in the third inning and held on to win in Anaheim, Calif.
Zach Remillard and Tim Anderson each had two hits for the White Sox. In the big third inning, Eloy Jimenez hit a two-run single, Yasmani Grandal and Clint Frazier each chipped in with RBI singles, and Remillard capped the scoring with a two-run single.
Shohei Ohtani hit a two-run homer in the ninth inning for the Angels, his major-league-leading 29th long ball of the season. Los Angeles' Mickey Moniak, Mike Moustakas and Hunter Renfroe also went deep.
The modest offence proved enough for Adrian Houser (3-2), who settled down after allowing back-to-back homers by Brett Baty and Brandon Nimmo in the third inning. Houser lasted six innings. Devin Williams' 16th save of the season gave Milwaukee its ninth win in the last 13 games.
Tommy Pham had two hits for the Mets, who have lost nine of their past 12 games.
Olson sustained a left knee contusion when he was drilled with a 104 mph comebacker by Josh Smith with two outs in the second inning. Detroit pulled away with four runs in the eighth, highlighted by a three-run homer from Torkelson, who also hit a solo homer in the fifth.
Ezequiel Duran and Leody Taveras homered for Texas.
Martinez drove in four runs and Freddie Freeman and Max Muncy had two hits and three RBIs each to help the Dodgers finish with season-highs in runs and hits (18). Los Angeles rookie Emmet Sheehan (2-0) allowed three runs on seven hits in five innings.
Jurickson Profar had three hits for Colorado, and Elias Diaz knocked in all three runs with a sacrifice fly and a two-run single.
Isiah Kiner-Falefa also homered for the Yankees, who posted double-digit runs just as they had in support of Domingo German's perfect game on Wednesday. Schmidt (3-6) held the A's to three runs and five hits over 5 1/3 innings.
Oakland starter Hogan Harris (2-2) yielded five runs, four earned, on nine hits in 5 1/3 innings. Seth Brown had three singles and an RBI for the A's, who took their 12th loss in 14 games.
The Marlins ended Bello's no-hit bid and later took the lead -- thanks to Jon Berti's RBI single to centre -- during an eighth-inning rally. Jazz Chisholm Jr. doubled the Miami lead with his second home run in as many games to straightaway centre in the ninth.
Miami starter Jesus Luzardo allowed just three hits and struck out nine over 6 1/3 scoreless innings. Andrew Nardi (6-1) got the win in relief, and A.J. Puk logged his 13th save. Bello (5-5) was charged with one run on two hits and one walk over seven-plus innings.
Guerrero ended a scoreless tie when he hit a two-out home run in the sixth that helped the Blue Jays take the rubber match of the three-game series. Bassitt (8-5) allowed three hits in six scoreless innings, and Jordan Romano posted his 24th save.
San Francisco's Patrick Bailey singled and doubled to extend his hitting streak to 10 games. Keaton Winn (0-1) made his first major league start and allowed two runs on three hits in six innings.
Fermin's heroics overshadowed a straight steal of home by Jose Ramirez in the top of the 10th that gave the Guardians a brief 3-2 lead. With Aroldis Chapman (4-2) on the mound, Ramirez broke for the plate and was originally called out before replay review showed that he evaded the tag of catcher Salvador Perez.
Following an infield single from the Royals' Nicky Lopez in the bottom of the 10th, Emmanuel Clase (1-5) struck out Drew Waters before allowing Fermin's game-winning hit. Kansas City was able to force extra innings thanks to a two-run rally in the eighth.
Jack Suwinski added an RBI single for the Pirates. Pittsburgh starter Luis Ortiz pitched 4 2/3 innings, giving up four runs and six hits. Dauri Moreta (4-2) pitched a scoreless seventh and David Bednar got four outs for his 16th save.
Trent Grisham and Ha-Seong Kim homered for the Padres, who have lost five straight. Starter Joe Musgrove allowed two runs and seven hits in six innings. Tim Hill (1-2) gave up three runs while getting one out in the seventh.
Franco, Raley and Harold Ramirez each had two hits in a game Tampa Bay broke open early. The Rays, who have won three of their past four, chased Diamondbacks rookie Brandon Pfaadt (0-3) in a five-run third. Arizona has dropped four of its past six games.
Diamondbacks rookie outfielder Corbin Carroll, the midseason front-runner for National League Rookie of the Year, exited in the fifth inning due to right shoulder soreness.