Sale (14-4) reached double digits in strikeouts for the 15th time this season.
The win pushed Boston's AL East lead over the New York Yankees to four games.
Any Leon then hit a two run single to left to score Xander Bogaerts and Brock Holt to give the Red Sox a 6-0 lead.
Porcello allowed two runs on four hits and two walks while striking out seven over six innings. He walked three and struck out six.
Gary Sanchez, Didi Gregorius and Todd Frazier hit solo home runs as NY defeated Toronto.
Donaldson connected twice against CC Sabathia (9-5), who came in with an AL-best 2.29 ERA in 10 road starts.
It was Donaldson's 12th multihomer game and his second this season, both coming against the Yankees. Greinke gave up four hits, walked four and struck out eight in 6-2/3 innings.
Roberto Osuna got three outs for his 29th save in 36 chances.
The Yankees kept pace with the Red Sox by crushing three home runs in an 11-5 pounding of the Blue Jays. Herrera was 2-for-4, scored one run and drove in a run.
However, Boston would add two runs in the 8th to cruise to the 8-2 win.
Zimbabwe: Mugabe, 93, Jets Off to Iran for Rouhani's Inauguration
French energy giant Total defied US pressure in July by signing a multi-billion-dollar gas deal with Iran. His nearest conservative challenger Ebrahim Raisi got 38.5 percent of the ballots.
Vance Worley (2-2) beat the Nationals for the second time in nine days. Verlander allowed just one hit over eight innings, a two-out double by Josh Bell in the sixth inning. Martin Perez scattered three hits over eight innings and blanked NY until Wilmer Flores' solo homer in the sixth.
X-rays came back negative, and he is listed as day-to-day with a contusion. Anderson sparked the White Sox in the fifth and sixth innings when they hit the Astros' Colin McHugh (0-1) hard and tallied all their runs. He had been 0-5 in eight starts and one relief appearance since beating Baltimore.
Tyler Clippard pitched the ninth for his second save.
Michael Conforto, Yoenis Cespedes and Travis d'Arnaud homered for the Mets.
"Just slowing it down, using the whole field", he said.
METS 4, RANGERS 1: Rookie Chris Flexen got his first big league win and hit, and the New York Mets took an early four-run lead against emergency starter A.J. Griffin in a win over Texas at New York that stopped a four-game losing streak. Garrett Cooper had four hits and two RBIs for the Yankees.
Nelson Cruz hit two home runs, and Kyle Seager launched a three-run blast as Seattle topped Oakland.
The Padres improved to 4-1 against the Reds, who haven't won a season series from them since 2012. The Royals were clinging to a 5-4 lead until Yadier Molina unloaded a grand slam in the bottom of the sixth. Solarte connected for a two-run shot an inning later. He's the first pitcher since 1913 to do so twice. Jarrett Parker singled home the tiebreaking run in the seventh, one inning before Hunter Pence homered. Tyler Duffey (1-3) relieved with two innings for his first victory of the season, and Dillon Gee struck out five over four scoreless innings for his first career save.
Our models project Bourjos for a.250 batting average, with 1 home run, 5 RBI, 6 runs scored, and 2 steals over 61 plate appearances remaining this season. Martinez holds the franchise record with 313 strikeouts in 1999. Brian Dozier smacked a solo homer among his three hits as the Twins sent the Brewers to their fourth consecutive loss.
Detroit has dropped four in a row.
Blackmon hit a 1-0 pitch from Zach McAllister (1-2) over the right field wall for his 27th home run. Eflin (1-3) allowed two runs and seven hits.