BOSTON — Jose Abreu hit a two-run homer over the Green Monster and out of Fenway Park in the ninth inning on Wednesday as the Chicago White Sox recovered after blowing the lead in the eighth to beat the Boston Red Sox 8-7.

Chicago had leads of 3-0, 5-2 and 6-4 before the Red Sox scored three in the eighth to take a 7-6 lead and hand White Sox closer Alex Colome (3-1) his first blown save in 17 opportunities. But Matt Barnes (3-3) gave up three straight hits in the top of the ninth — Leury Garcia was caught stealing — including Abreu's 19th homer of the season.

Abreu had three hits and four RBIs, and Garcia also had three hits for Chicago. James McCann had an RBI single and added a solo home run against Chris Sale as Chicago pounced on the Boston starter for five runs in the first three innings.

Sale, who allowed six of the first seven batters to reach safely, retired the last 10 he faced, striking out the side in the sixth. He avoided the loss when Xander Bogaerts hit a two-run single in a three-run eighth inning to make it 7-6 — Boston's only lead of the game.

Rafael Devers, who went 4-for-4 on Tuesday night, had three more hits and scored three times for Boston. J.D. Martinez hit a two-run homer and also had an RBI double for the Red Sox.

The Red Sox were scheduled to leave for London after the game to play the New York Yankees.

Leading 6-4 in the eighth, Evan Marshall gave up a one-out single to Eduardo Nunez and a double to pinch-hitter Brock Holt. Colome got Mookie Betts to hit a hard grounder and third baseman Jose Rondon came home with it.

Nunez slid in safely head-first. Devers grounded out to the pitcher, but Bogaerts bounced a single up the middle to give Boston a 7-6 lead.

Both teams gave away runs on bad fielding plays.

Ryan Cordell beat out a slow roller to third base in the third inning. Jon Jay, who had been on second, rounded third and scored easily while Red Sox first baseman Michael Chavis was looking at the umpire, delaying the throw home.

Devers scored on a wild pitch to make it 5-3 when pitcher Reynaldo Lopez failed to cover home.

In all, Sale allowed six hits and a walk, hitting two batters and striking out 10 against his former team. Before his next start he will have gone 12 starts and an entire year without winning a regular-season game in Fenway Park.

Steven Wright made his season debut after serving an 80-game suspension for violating the policy against performance-enhancing drugs.

The knuckleballer pitched the eighth, striking out one and hitting a batter.

Tim Anderson was in a walking boot a day after spraining his right ankle while fielding a grounder. 3B Yoan Moncada was hit by a pitch on the right knee in the first inning and left the game. RF Charlie Tilson left the game with flu-like symptoms in the seventh inning.

Up next, the White Sox open a nine-game homestand on Friday night. Martin Perez (7-3) pitches the opener against the Minnesota Twins. The Red Sox travel to London for two-game series against the Yankees, Saturday and Sunday.