BOSTON — Steven Wright gave up two runs in seven innings, had a career-high eight strikeouts and outdueled Chris Sale as the Boston Red Sox avoided a four-game sweep with a 8-2 win over the Chicago White Sox on Thursday night at Fenway Park.

Wright (4-4), facing the White Sox for the first time, allowed six hits and two walks while throwing a season-high 116 pitches in Boston’s third win in 14 games since the All-Star break.

Chicago had its winning streak snapped at a season-high seven games.

Designated hitter David Ortiz had three hits and drove in two runs and shortstop Xander Bogaerts added three singles and a sacrifice fly for the Red Sox. Right fielder Rusney Castillo hit a first-pitch solo home run in the seventh, his first homer since being called up from Triple-A on Monday.

Sale (9-6) was chased after five batters in the sixth. The four-time All-Star left-hander surrendered seven runs, 12 hits and a walk and had seven strikeouts for the White Sox, who were held to fewer than nine runs and a single-digit hit total for the first time in the series.

Jose Abreu hit a two-run homer in the first, giving the Chicago first baseman 17 homers for the season. Center fielder Adam Eaton and shortstop Alexi Ramirez each had two hits.

Boston loaded the bases with nobody out in the sixth after scoring twice to take a one-run lead an inning earlier. Center fielder Jackie Bradley Jr. singled to center before second baseman Brock Holt drove in two with a single to the gap at second, giving the Red Sox a four-run advantage.

Bogaerts drove in Boston’s fourth run of the sixth with a flyout to right, making it 7-2.

Chicago kept up the early pressure, scoring its 12th and 13th first-inning runs of the series to take another lead. Abreu homered for the second time in three games, sending a 1-1 pitch into right field stands to put the White Sox up 2-0 after a half-inning.

Ortiz and got a run back in the bottom of the first with a hard-hit, ground-ball double to right. He gave Boston a 3-2 lead with a two-out single to right in the fifth.

Left fielder Hanley Ramirez fouled a pitch off his left foot during his fifth-inning at-bat, but he toughed it out and hit the tying single to right before Ortiz’s go-ahead hit.

After departing Wednesday’s game with dehydration, Red Sox third baseman Pablo Sandoval left after the fourth inning Thursday with a left forearm contusion sustained during an inning-ending strikeout.

NOTES: Chicago totaled 30 runs and 46 hits through the first three games of the series against Boston. … J.B. Shuck started in right field for the White Sox in place of Avisail Garcia, who hit .258 (8-for-31) in the first seven games of Chicago’s eight-game road trip. “It’s a day to work on some stuff,” White Sox manager Robin Ventura said. … Chicago acquired minor league INF Justin Sellers from the Pittsburgh Pirates for cash or a player to be named. … RHP Jean Machi was added to Boston’s active 25-man roster, and RHP Jonathan Aro was recalled from Triple-A Pawtucket. OF Daniel Nava was designated for assignment, and LHP Tommy Layne was optioned to Triple-A. … Red Sox C Sandy Leon cleared waivers and was outrighted to Pawtucket.

Blue Jays 5, Royals 2

TORONTO — Dioner Navarro hit a two-run homer, Marco Estrada pitched into the sixth inning, and the Toronto Blue Jays defeated the Kansas City Royals 5-2 Thursday night.

Navarro, the Blue Jays’ catcher, gave Toronto the lead for good with his second-inning home run.

Designated hitter Russell Martin and third baseman Josh Donaldson added solo shots as the Blue Jays celebrated the acquisition of left-hander David Price in a trade with the Detroit Tigers earlier in the day.

The Royals’ only two runs against Estrada (8-6) came in the first inning. The right-hander allowed three hits, walked none and struck out three in 5⅔ innings.

Royals left-hander Danny Duffy (4-5) allowed three home runs among six hits in six innings. He gave up four walks and five runs with four strikeouts in six innings.

Padres 8, Mets 7

NEW YORK — Justin Upton hit a three-run homer with two outs in the top of the ninth inning Wednesday to complete the San Diego Padres’ stunning comeback in an 8-7 victory over the New York Mets at Citi Field in a game that featured two rain delays totaling more than 3½ hours.

The Padres trailed 7-1 in the seventh when Derek Norris hit a grand slam. The Mets still led 7-5 entering the ninth when Jeurys Familia retired the first two batters on just three pitches. Familia then got ahead of Norris 0-1 before heavy rains arrived and umpires waved the teams off the field.

Forty-four minutes later, play resumed and Familia promptly got a swinging strike on Norris. Norris fouled off the next three pitches before he blooped a single into right field for his fifth hit in as many at-bats.

Matt Kemp followed with another single. Heavy rain again began falling as Upton hit the first pitch he saw from Familia (2-1) beyond the center field wall for his 18th homer of the season.

Nationals 1, Marlins 0

MIAMI — Ryan Zimmerman hit a solo home run and Max Scherzer pitched seven scoreless innings, leading Washington past Miami.

Jonathan Papelbon pitched a scoreless ninth inning to earn his first save since joining the Nationals. He was acquired from the Philadelphia Phillies on Tuesday.

Scherzer (11-8) allowed three hits — all singles — and three walks while striking out six and lowering his ERA to 2.22.