AMERICAN LEAGUE: Red Sox 5, Orioles 1

Chris Sale took a two-hitter into the seventh inning before being ejected, and visiting Boston completed a three-game sweep of skidding Baltimore on Wednesday.

After issuing two walks to open the seventh in a 5-0 game, Sale (6-4) was lifted by manager Alex Cora. As he was making his way to the dugout, the left-hander yelled at home plate umpire Brian Knight and was promptly ejected.

It was the second career ejection for Sale, the other coming in April 2015 when he was with the Chicago White Sox.

Sale struck out nine, allowed one run and gave up two hits in ending a run of three straight losing starts.

Mookie Betts and J.D. Martinez homered for the Red Sox, who are 9-1 against the Orioles this season.

Baltimore has lost seven straight and 14 of 16.

Tigers 5, Twins 2

Victor Reyes’ RBI single keyed a four-run eighth inning, and host Detroit rallied to beat Minnesota.

The Tigers won for just the fourth time in 11 games.

Leading 2-1 after seven, the Twins failed to add an insurance run in the eighth, stranding Eduardo Escobar after a one-out triple, and it came back to haunt them.

With one out in the bottom of the inning, John Hicks, Niko Goodrum and Grayson Greiner hit consecutive singles off Addison Reed (1-5) to tie the game. Jose Iglesias popped out, but Reyes grounded an RBI single to left.

Reyes, a Rule 5 pick, started the night hitting .196 with four RBI in 30 games.

Leonys Martin followed with an RBI single and Reyes scored on right fielder Robbie Grossman’s throwing error to make it 5-2.

Rays 1, Blue Jays 0

Matt Duffy’s RBI single with two outs in the ninth drove in the game’s only run in host Tampa Bay’s win over Toronto.

Duffy drove in Mallex Smith, who doubled with one out and moved to third base on a ground ball.

Diego Castillo (1-0) got his first major-league win after pitching two innings of relief.

Ryan Tepera (3-2) pitched the final 1⅔ innings for the Jays, who were swept in the three-game series and have lost five of six to the Rays this season. It was the 12th time the Blue Jays have scored one run or none this season.

Curtis Granderson had the first three of Toronto’s five hits, leadoff singles in the first, third and fifth innings and was the only runner to reach third base until Smith in the ninth.

Mariners 8, Angels 6

Mitch Haniger hit a two-run home run in the bottom of the ninth inning to give host Seattle Mariners a win over Los Angeles to complete a three-game sweep.

After Jean Segura singled to center off reliever Oliver Drake (0-1), Haniger launched his 16th homer of the season over the left-field wall to finish off the sweep. Nelson Cruz and Ryon Healy also homered for Seattle, and Healy’s upper-deck shot in the eighth inning tied the game at 6-6.

The Mariners have won six of their last seven games and 11 of their last 13. Roenis Elias (2-0) earned the win with two scoreless innings of relief, and Seattle starter Marco Gonzales allowed seven hits and three runs in five innings.

Angels starting pitcher Garrett Richards left the game after two innings because of tightness in his left hamstring. Shortstop Zack Cozart left in the fourth inning because of left shoulder strain.

NATIONAL LEAGUE: Pirates 5, Diamondbacks 4

Jordy Mercer homered and had three RBI, Jameson Taillon pitched seven effective innings and Pittsburgh avoided a sweep with a win over host Arizona.

The Pirates blew a five-run lead in the opener and were knocked for 13 runs in the second game. Pittsburgh ended Arizona’s sweep bid with a four-run second inning against Zack Greinke (5-5) and a sterling performance by Taillon (4-5).

Taillon gave up a two-run homer to David Peralta in the first inning when the ball popped out of left fielder Austin Meadows’ glove and over the wall. Taillon worked out of a jam in the second inning and allowed two runs on six hits to help end Arizona’s five-game winning streak.

Felipe Vazquez gave up a two-run single to pinch-hitter Jon Jay in the ninth before striking out Jake Lamb with the bases loaded for his 12th save.

Marlins 5, Giants 4

Brian Anderson hit a game-ending sacrifice fly in the ninth inning to lift host Miami over San Francisco.

J.T. Realmuto had two hits and scored twice for the Marlins, who have won three straight.

Andrew McCutchen hit a two-run home run and Buster Posey had three hits for the Giants, who have lost four of five.

Reyes Moronta (2-1) allowed the first two hitters to reach in the bottom of the ninth, prompting manager Bruce Bochy to call on Hunter Strickland. Pinch-hitter J.B. Shuck hit a hard grounder down the first-base line, but Posey was able to dive to keep the ball in front of him, preventing the Marlins from scoring.

However, Strickland got himself into a 3-1 count against Anderson with one out. Anderson connected on a flyball to center field caught by Gorkys Hernandez, whose throw home was too late to catch Miguel Rojas.

Brewers 1, Cubs 0

Lorenzo Cain homered and Jhoulys Chacin combined with three relievers on a six-hitter to give host Milwaukee its second straight shutout of Chicago.

Chacin (6-1) allowed four hits in six innings, striking out seven and walking four to win his sixth straight decision. Jeremy Jeffress pitched the seventh, Josh Hader struck out the side in the eighth and Cory Knebel finished with a perfect ninth for his sixth save.

Mike Montgomery (2-2) allowed only two hits in six innings, both by Cain. He struck out four and walked one in his fourth start since replacing injured Yu Darvish in the rotation.

Braves 2, Mets 0

Mike Soroka did not allow a hit until the seventh inning, Freddie Freeman homered and drove in both runs, and host Atlanta beat New York.

Soroka, the youngest pitcher in the major leagues and one of baseball’s top prospects, returned from a right shoulder strain that sidelined him since May 17 to outpitch NL ERA leader Jacob deGrom in a game that lasted only two hours and 12 minutes.

The Mets have lost 10 of their past 11 games.

Making his fourth career start, Soroka (2-1) gave up one hit, one walk and struck out four in 6⅓ innings.

Freeman, the NL batting leader, has hit safely in 23 of his past 24 games. He drove in the first run with a single in the fourth off deGrom (4-2). He homered off Jeremy Blevins in the eighth.

Rockies 7, Phillies 2

Ian Desmond hit a two-run homer in a five-run fourth inning, Tyler Anderson pitched seven strong innings and Colorado routed host Philadelphia to snap a five-game skid.

Trevor Story added three hits and drove in two for the Rockies, who had dropped nine of 11 while falling from first place to fourth in the NL West.

Anderson (4-1) allowed one run and six hits while matching his longest outing of the season, set in his last start.

Jorge Alfaro and Jesmuel Valentin homered for the Phillies, who were seeking their first three-game win streak since May 13-17.

Nick Pivetta (4-6) struck out five straight batters in the second and third innings before allowing a walk and five straight hits to start the fifth. Story had an RBI double off the wall and Gerardo Parra followed with a two-run single.

INTERLEAGUE: Nationals 5, Yankees 4

Teen rookie Juan Soto homered twice and drove in four runs, becoming the youngest player in 29 years to go deep in a regular-season game at Yankee Stadium as Washington beat New York.

The 19-year-old outfielder lofted a three-run homer into the left-field corner off Sonny Gray in the fourth inning to give Washington a 4-3 lead. Soto then launched a titanic shot to right-center in the seventh against Chasen Shreve (2-1), putting the Nationals back in front 5-4.

Projected at 436 feet, the drive soared to the back of a standing-room terrace over the Yankees’ bullpen in right-center. It also ended a 23-inning shutout streak for New York relievers and made Soto (19 years, 231 days old) the youngest player in Nationals history to have a multihomer game.

Hall of Famer Ken Griffey Jr. was 19 years, 190 days old when he homered — also twice — for Seattle at old Yankee Stadium on May 30, 1989.