Chris Sale struck out 12 in seven innings of shutout ball in his final start before the All-Star Game, and major league batting leader Mookie Betts had two more hits to lead Boston past visiting Texas 4-2 on Wednesday for its ninth straight victory.
Sale (10-4) allowed six hits and walked one to win his fifth straight decision and move the Red Sox 36 games above .500 for the first time since Bucky Dent homered into the net above the Green Monster in a one-game playoff to settle the 1978 AL East title.
Elvis Andrus had three hits for the Rangers, who struck out 18 times to lose for the fifth time in six games. Bartolo Colon (5-7) allowed four runs.
Craig Kimbrel struck out the side in the ninth for his 28th save, and his 19th in a row.
Pirates 2, Nationals 0: In Pittsburgh, Starling Marte hit a two-run home run and Trevor Williams combined with four relievers on a five-hitter as Pittsburgh beat Washington.
Williams (7-7) won for just the second time in his past 10 starts, giving up four hits with three strikeouts and three walks.
Gio Gonzalez (6-6) remained winless since May 28 despite allowing just two runs, six hits and one walk while striking out four.
Washington lost for the 11th time in 16 games and fell back to .500.
Richard Rodriguez, Edgar Santana, Kyle Crick and Felipe Vazquez followed Williams with one scoreless inning each. Vazquez earned his 20th save in 24 opportunities.
Twins 8, Royals 5: In Minneapolis, Brian Dozier hit a two-run home run, going deep for the second straight game to give Minnesota a boost on its way to a win over Kansas City.
Lance Lynn (7-7) recovered from a three-run homer by Salvador Perez in the first inning to win his second straight start for the Twins, who used the bottom third of their lineup to launch rallies in the second and the fourth against Royals starter Burch Smith (0-1).
Mike Moustakas homered twice for the Royals, who have the fewest home runs in MLB, but took the Twins deep five times over the last two games of this series. Kansas City has lost 23 of its past 27 games.
Rays 4, Tigers 2: In St. Petersburg, Florida, C.J. Cron’s three-run home run in the seventh inning carried Tampa Bay Rays to its fifth straight win, a victory over Detroit.
Cron’s 18th homer came off Jordan Zimmermann after singles by Kevin Kiermaier and Matt Duffy.
The Tigers, who struck out 14 times against five Tampa Bay pitchers, have lost four straight and 18 of 22.
Rookie left-hander Ryan Yarbrough (8-4) got the win after giving up one hit in three innings of relief. Sergio Romo pitched the ninth for his 11th save in 16 opportunities.
Tigers starter Jordan Zimmermann (4-1) gave up four runs and 11 hits in 6 2/3 innings.
Giants 5, Cubs 4 (13): In San Francisco, Buster Posey singled off the right-field wall in the 13th inning for his fifth career game-ending hit, sending San Francisco past Chicago.
Brandon Belt drew a two-out walk from James Norwood (0-1). Andrew McCutchen then singled to bring up Posey, who ended the 4-hour, 30-minute game with San Francisco’s first run since scoring four in the first.
Dereck Rodriguez (4-1) pitched three scoreless innings for the win. He also had three of San Francisco’s 16 strikeouts.
Cubs slugger Kris Bryant hit a two-run homer in his return from the disabled list, and All-Star Javier Baez tied the game with a solo homer to start the seventh.
Yankees 9, Orioles 0: In Baltimore, Greg Bird hit his first career grand slam to back a dominating pitching performance by Sonny Gray, and New York beat the Baltimore for a split of the four-game series.
Rookie Tyler Wade and Austin Romine also homered for the Yankees, and Giancarlo Stanton had four hits.
Facing Dylan Bundy (6-9) in the third inning, Bird launched a drive off the right-field foul pole to put New York up 5-0. It was the second night in a row he homered and had four RBIs.
Gray (6-7) allowed three hits, walked one and struck out eight over six innings.
Mets 3, Phillies 0 (10): In New York, pinch-hitter Brandon Nimmo launched a three-run homer in the bottom of the 10th inning and New York got another dominant outing from All-Star Jacob deGrom in a victory over Philadelphia.
Amed Rosario, who had two of New York’s four hits, began the winning rally with a two-out double off Mark Leiter Jr. (0-1) – the first hit for the Mets since the fourth inning. Jose Reyes walked and Nimmo drove Leiter’s next pitch well over the wall in right-center for his first career walk-off RBIs.
In his final scheduled start before heading to the All-Star Game next Tuesday in Washington, deGrom scattered five hits and matched his longest outing of the season. He struck out seven and lowered his major league-leading ERA to 1.68.
Robert Gsellman (6-2) pitched a scoreless inning for the win.
White Sox 4, Cardinals 0: In Chicago, Carlos Rodon pitched three-hit, shutout ball into the eighth inning to outduel Luke Weaver and lead Chicago to a victory over St. Louis.
Rodon (2-3) allowed only two singles and a double while walking two and striking out a season-high seven though 7 1/3 innings. The 25-year-old left-hander, who spent the first two months of 2018 on the disabled list rehabbing from shoulder surgery, sparkled in just his seventh start this season.
Joakim Soria got the final four outs for his 13th save in 16 chances.
Weaver (5-8) allowed one run on three hits and fanned seven his second straight impressive start.
Braves 9, Blue Jays 5: In Atlanta, Ozzie Albies snapped Atlanta’s power drought with two homers, and the Braves beat Toronto to move back into a tie for the N.L. East lead.
Mike Foltynewicz (7-5) and the Braves led 7-0 before Toronto scored five runs in the seventh on Justin Smoak’s leadoff homer and a grand slam by Devon Travis. But Albies hit a two-run shot in the eighth to help Atlanta hold on for just its second win in eight games.
Coupled with Philadelphia’s loss to the New York Mets, the Braves moved into a tie with the Phillies for the division lead.
Toronto’s Sam Gaviglio (2-3) allowed six runs in 1 2/3 innings.
Indians 19, Reds 4: In Cleveland, Jose Ramirez homered twice and drove in five runs as Cleveland took out some frustrations following a brutal loss with a thumping of Cincinnati.
Ramirez hit a two-run homer in the first inning off Tyler Mahle (7-7) and connected for a three-run shot in Cleveland’s nine-run third. With the Indians up 17-0, the All-Star was replaced in the fifth inning by manager Terry Francona before he could inflict further damage.
It was a much-needed rebound by the A.L. Central leaders, who squandered a 4-0 lead in the ninth on Tuesday night, when Francona’s miscommunication with pitching coach Carl Willis on a choice of relievers helped the Reds rally for seven runs and stun the Indians.
Carlos Carrasco (10-5) reached 1,000 career strikeouts, and given the humongous lead, coasted through five innings for his second straight win since coming off the disabled list. Adam Plutko worked four innings for his first career save.
Athletics 8, Astros 3: In Houston, Chad Pinder hit a three-run homer and Khris Davis added three RBIs as Oakland jumped on Lance McCullers Jr. early and cruised to a win over Houston.
Davis, who extended his career-best hitting streak to 13 games, put the A’s up 2-0 with a double in a three-run first. Pinder made it 6-0 when he connected off McCullers (10-4) for his ninth homer in the fourth.
Oakland starter Chris Bassitt (2-3) yielded five hits and three runs in five innings for his second straight win after losing his first three decisions.
Rockies 19, Diamondbacks 2: In Denver, Arizona’s Coors Field dominance ended in a blast of offense by Colorado. Carlos Gonzalez hit two homers, starter German Marquez also went deep for one of Colorado’s five home runs as the Rockies routed Arizona.
Gonzalez drove in six runs to help the Rockies end a nine-game home losing streak against the Diamondbacks. They scored 12 runs in the first three innings and only a couple of Arizona position players taking the mound settled things down.
Arizona starter Shelby Miller (0-4) allowed five runs before leaving after the first with right elbow tightness. Miller was making his fourth start since returning from Tommy John surgery and was headed back to Phoenix on Wednesday night to be evaluated, manager Torey Lovullo said.
Marlins 5, Brewers 4 (12): In Miami, Milwaukee slugger Jesus Aguilar was added to the N.L. All-Star team and then validated the selection with three hits and three RBIs, but the Brewers went 3 for 16 with runners in scoring position and lost to the Marlins in 12 innings.
Starlin Castro singled home the winning run with one out in the 12th.
Aguilar learned he won the online vote for the final N.L. roster spot, and he’ll also compete in the Home Run Derby next week in Washington. He doubled home a run in the first, singled in the fourth and hit a tying, two-run double in the eighth against Drew Steckenrider.
Aguilar came into the game leading the N.L. in homers, slugging and OPS. He has 67 RBIs and is batting .307.
Mariners 3, Angels 0: In Anaheim, California, Marco Gonzalez pitched seven sharp innings, David Freitas hit his first major league home run and Seattle defeated Los Angeles.
Gonzalez (10-5), who retired his first 10 batters, gave up just two hits and struck out four without issuing a walk. He not only earned his seventh victory since May 17, he became the 10th pitcher in Mariners history to reach 10 wins before the All-Star break.
Freitas, who had been hitless in seven at-bats since being recalled July 5, went deep in the third against starter Jaime Barria. It was Freitas’ 32nd career game, 26 of which have been with the Mariners.
Barria (5-6) gave up three runs and five hits in five-plus innings with five strikeouts and no walks. The right-hander has lost his last five decisions, including the past two to the Mariners.
Dodgers 4, Padres 2: In San Diego, Kenta Maeda (6-5) allowed only one first-inning run, limiting the Padres to four hits over 5 2/3 innings while striking out nine for the fourth consecutive start.
Maeda’s ERA, a season-high 4.75 on May 11, is now 3.13 and the Dodgers have won six of his last nine starts.