CHICAGO -- Dallas Keuchel pitched six effective innings, Yasmani Grandal homered and the Chicago White Sox beat the Toronto Blue Jays 5-2 on Thursday night.
Led by Keuchel, Chicago closed out a 5-2 homestand and improved its AL Central lead to a season-high 4 1/2 games over idle Cleveland. Adam Engel also went deep, and reigning AL MVP Jose Abreu hit two RBI doubles.
Keuchel (Arkansas Razorbacks) allowed 6 hits and 2 walks while striking out 8.
It was the first game for the White Sox since they placed second baseman Nick Madrigal on the injured list with a torn right hamstring. Madrigal got hurt when he tried to beat out a grounder in the seventh inning of Wednesday night's 6-2 loss to Toronto.
Chicago has been hit hard by injuries this year, but it keeps rolling along.
The loss of Madrigal is "a big blow, but the games still count and we have to go forward," Manager Tony La Russa said.
Marcus Semien and Lourdes Gurriel Jr. each drove in a run for Toronto, which lost for the fourth time in six games. Hyun Jin Ryu (5-4) pitched six innings of three-run ball in his second consecutive loss.
Infield hits by Joe Panik and Santiago Espinal set up Semien's two-out RBI single in the fifth. A mental gaffe by White Sox third baseman Yoan Moncada paved the way for the Blue Jays' second run in the sixth.
With one out and Vladimir Guerrero Jr. on first, Moncada fielded Randal Grichuk's grounder and threw to first instead of going to second to get the lead runner. Guerrero advanced on a wild pitch and scored on Gurriel's two-out single, trimming Chicago's lead to 3-2.
But Keuchel (5-1) escaped the jam by retiring Riley Adams on a fly ball to center with two runners on. Engel then hit his first home run of the season in the seventh, sending a solo drive deep to center against Anthony Castro.
After Keuchel departed, Evan Marshall and Codi Heuer each got three outs before Liam Hendriks worked the ninth for his AL-leading 16th save.
The White Sox got off to a fast start against Ryu, scoring three times in the first. Abreu doubled home Yermin Mercedes before Grandal hit an opposite-field drive to right for his 10th home run.
RED SOX 12, ASTROS 8 J.D. Martinez hit his 13th home run, Christian Arroyo had a three-run drive and Boston took advantage of a pair of dropped balls in a five-run sixth inning to beat Houston and avoid a three-game sweep. Right fielder Kyle Tucker dropped Martinez's sacrifice fly that tied the score at 8 for an error as the batter reached, and shortstop Carlos Correa let Rafael Devers' bases-loaded pop to short center to glance off his glove but got the out because an infield fly was called. Yuli Gurriel and Jose Altuve homered for the Astros.
TIGERS 8, MARINERS 3 Jonathan Schoop homered and Isaac Paredes hit a go-ahead single as Detroit rallied from a first-inning deficit and took advantage of two errors by shortstop Kyle Seager and one by second baseman Donovan Walton to score two unearned runs to defeat Seattle.
TWINS 7, YANKEES 5 Josh Donaldson and Nelson Cruz hit back-to-back home runs off Aroldis Chapman in the ninth inning, and Minnesota beat New York to avoid a three-game sweep. Giancarlo Stanton drove a slider off the end of his bat 422 feet for a three-run, first-inning home run off J.A. Happ, Gio Urshela also homered and an all right-handed New York Yankees lineup built a 5-2 lead by the sixth inning. But Chapman blew a save for the second time in 14 chances.
ROYALS 6, ATHLETICS 1 Andrew Benintendi (Razorbacks) and Jorge Soler belted home runs as Kansas City defeated Oakland.
DODGERS 6, PIRATES 3 Mookie Betts hit his 25th leadoff home run and added a spectacular catch and throw for a double play to lead Los Angeles over Pittsburgh. Betts took the third pitch he saw from Mitch Keller and sent it into the bullpen beyond the centerfield fence for his sixth home run this season.
MARLINS 11, ROCKIES 4 Starling Marte had four hits, including a home run and a double, and Miami beat Colorado. Adam Duvall and Jazz Chisholm also went deep for the Marlins, who had 16 hits. Trevor Rogers allowed 2 runs and 4 hits in 7 innings. Miami's rookie left-hander struck out 8, walked 1 and has yielded 2 runs or fewer in 12 of his 13 starts.
PHILLIES 4, BRAVES 3 Jean Segura hit a two-run single against Chris Martin (0-2) in the 10th inning as Philadelphia defeated Atlanta.
BREWERS 7, REDS 2 Jace Peterson drove in three runs, and Daniel Vogelbach hit a two-run home run as Milwaukee defeated Cincinnati.
LA Dodgers 6, Pittsburgh 3 (8)
Milwaukee 7, Cincinnati 2
Philadelphia 4, Atlanta 3 (10)
Miami 11, Colorado 4
San Francisco at Washington, ppd. rain
Detroit 8, Seattle 3
Chicago White Sox 5, Toronto 2
Boston 12, Houston 8
Minnesota 7, NY Yankees 5
Kansas City 6, Oakland 1