Chris Sale shut down Kansas City's offense, and the visiting Red Sox took advantage of a shoddy Royals defense in Boston's 8-0 victory Wednesday night. Rafael Devers hit a home run, scored three runs and drove in three. Brock Holt and Andrew Benintendi each had three hits. Sale (2-7), making his 220th start, and the 300th appearance of his 10-year major league career, scattered three singles in a complete-game shutout, with 12 strikeouts and no walks. It was the seventh time in his last nine starts that Sale has struck out at least 10. It was his first complete game since a 1-0 loss (eight innings) against the Phillies at Philadelphia on June 15, 2017, and his first shutout since April 15, 2016, against the Rays at Tampa Bay while with the Chicago White Sox. Sale also threw an immaculate inning —- striking out three batters in an inning on nine total pitches — for the second time in less than a month. Sale struck out Kelvin Gutierrez and Nicky Lopez looking, and then Martin Maldonado went down swinging. Sale's previous perfect inning came May 8 in Baltimore. Rangers 2, Orioles 1 (12 innings) Delino DeShields singled to center with two outs in the bottom of the 12th inning to give Texas a victory over Baltimore in the middle game of their three-game series in Arlington, Texas. The Rangers put runners on first and second with two outs against left-hander Paul Fry (0-3), the Orioles' fifth pitcher, when DeShields grounded a single to center that scored pinch runner Isiah Kiner-Falefa with the game-winning run. That capped a 4-for-6 night for DeShields, and all four hits were singles. He scored the other Texas run. Left-hander Jeffrey Springs (3-1), the Rangers' sixth pitcher, retired Baltimore in order in the 12th and earned the victory. Diamondbacks 3, Dodgers 2 (11 innings) Eduardo Escobar scored after leading off the 11th inning with a triple, and Arizona won in Phoenix to end Los Angeles' seven-game winning streak. Dodgers left-hander Scott Alexander (3-2) intentionally walked Ketel Marte before David Peralta drove the first pitch he saw into right field for a walk-off single. Six Diamondbacks relievers each pitched a scoreless inning of relief, with Zack Godley (2-4) throwing a perfect 11th to pick up the victory. Mets 7, Giants 0 Jason Vargas continued his unlikely resurgence, when the 36-year-old southpaw tossed his eighth career shutout to lead host New York past San Francisco. The Mets ended a three-game losing streak and won for just the third time in their last nine games. The Giants had their three-game winning streak — tied for their longest of the season — snapped. Vargas (2-3) spared an overworked and underperforming bullpen — Mets relievers entered Wednesday with a 5.19 ERA — by allowing just five hits and one walk while striking out eight in his 13th career complete game and his first since he twirled a shutout for the Kansas City Royals against the Cleveland Indians on June 2, 2017. Angels 10, A's 9 Dustin Garneau's ground-rule double with two out in the bottom of the ninth drove home Brian Goodwin with the winning run for Los Angeles in a win over Oakland in Anaheim, Calif. Garneau, a backup catcher who has spent most of the season in the minor leagues, entered the game in the top of the ninth after starting catcher Jonathan Lucroy was lifted for a pinch runner in the bottom of the eighth. With Goodwin on second after his two-out single and stolen base, Garneau lifted a fly ball to left field off A's reliever Lou Trivino (2-4). With the outfield playing shallow, left fielder Robbie Grossman had a long way to go to reach the warning track and wasn't able to make a play, the ball bouncing off the warning track and over the fence. Cubs 9, Rockies 8 David Bote went 4-for-4 with a double, a homer and a career-high seven RBIs, and Chicago held on for a win over visiting Colorado. Bote drilled a three-run homer, a three-run double and a run-scoring single as the Cubs won their third consecutive game. Willson Contreras and Anthony Rizzo drove in one run apiece for Chicago. David Dahl finished with three RBIs and Nolan Arenado notched two RBIs for the Rockies. Colorado has dropped back-to-back games after winning its previous eight in a row. Marlins 8, Brewers 3 Brian Anderson slugged his first career grand slam, and right-hander Sandy Alcantara pitched seven strong innings as Miami defeated host Milwaukee. The Marlins, who have the worst record in the National League, are 13-5 since a 10-31 start. They have won four straight games and seven of their last nine. Milwaukee has lost two games in a row, both in this series, by a combined score of 24-3. Mariners 14, Astros 1 Domingo Santana, Tom Murphy and Edwin Encarnacion hit homers in a seven-run sixth inning as Seattle defeated visiting Houston to snap a four-game losing streak. Right-hander Mike Leake (5-6) pitched Seattle's first complete game of the season, allowing six hits with two walks and five strikeouts. Pinch-hitter Mac Williamson, making his Seattle debut, added a three-run homer, and Kyle Seager had a solo shot, both in the eighth, as the Mariners ended Houston's five-game winning streak and beat the Astros for the first time in six tries this season. Rays 4, Tigers 0 Charlie Morton continued his mastery with seven dominant innings and Tampa Bay ended a four-game losing streak by blanking host Detroit. Morton (7-0) scattered five hits and didn't walk a batter while striking out eight. Morton, who has won four of his last five starts, hasn't been charged with a loss since last Aug. 11. Oliver Drake got the last six outs. Ji-Man Choi reached base three times and drove in a run for the Rays. Austin Meadows tripled and scored a run, while Yandy Diaz reached three times and scored a run. Pirates 7, Braves 4 Joe Musgrove pitched into the ninth inning, and Elias Diaz and Colin Moran homered as Pittsburgh topped visiting Atlanta to end a three-game losing streak. Gregory Polanco was 3-for-4 with an RBI double and two steals, and Starling Marte was 3-for-3 for the Pirates. Ronald Acuna Jr. and Dansby Swanson homered for the Braves, who had won three straight. Indians 9, Twins 7 Jordan Luplow belted a two-run homer and Roberto Perez added a solo shot in the seventh inning as host Cleveland defeated Minnesota. Francisco Lindor recorded his third homer in two days, and Jose Ramirez joined Luplow in driving in three runs for the Indians, who have won five of their past eight games. Byron Buxton launched a three-run homer and Jorge Polanco and Nelson Cruz each added a solo shot for the Twins, who have lost two in a row after winning 10 of their previous 12 contests. Nationals 6, White Sox 4 Trea Turner hit a two-run homer with none out in the bottom of the ninth inning as Washington overcame blowing a three-run lead and continued its surge with a victory over visiting Chicago. The Nationals won their season-high fourth straight and their ninth in 11 games since a four-game sweep to the Mets in New York from May 20-23. They overcame an eighth-inning collapse by their bullpen, which had produced scoreless outings in the previous three games and a 2.70 ERA in the last seven contests. Turner gave the Nationals their fourth walk-off win when he lifted a 95 mph letter-high fastball off Alex Colome (2-1) into the left field seats. It was Turner's third career walk-off homer and occurred after pinch hitter Brian Dozier drew a four-pitch walk. Blue Jays 11, Yankees 7 Vladimir Guerrero Jr. hit a go-ahead three-run home run in the eighth inning, Randal Grichuk hit two homers and Toronto defeated visiting New York. DJ LeMahieu had given the Yankees a 7-4 lead with a three-run homer in the sixth. Toronto came back with two runs in the seventh and five in the eighth. The Blue Jays have won the first two games of the three-game series. Phillies 7, Padres 5 Center fielder Adam Haseley drove in the tiebreaking run with his first major league hit in the eighth inning as visiting Philadelphia scored five runs in two innings against the San Diego bullpen in the rubber match of a three-game series. Jay Bruce belted his third homer in his first two starts since the Phillies acquired him from the Seattle Mariners. The Padres led 5-2 going into the seventh. But relievers Trey Wingenter and Craig Stammen gave up five runs on five hits in two innings. All five runs came with two outs in the consecutive frames. Reds-Cardinals postponed The game between St. Louis and Cincinnati in St. Louis was postponed due to rain. It will be made up as part of a split doubleheader on Saturday, Aug. 31. — Reuters