Sale (8-1) allowed six hits and walked none in his fourth double-digit strikeout game of the season and 14th of his career.
Dayan Viciedo and Paul Konerko also homered for the White Sox, who have won five of seven.
Willie Bloomquist went 2 for 4 for the Mariners, who saw their four-game winning streak snapped. Rookie Roenis Elias (7-7) allowed five runs in five innings. He struck out six and walked one.
Viciedo went 4 for 4 including a leadoff homer in the fourth that gave the White Sox a 1-0 lead. His 10th homer came on a 2-1 pitch.
The White Sox added four runs in the fifth. Adam Eaton hit an RBI double and Gordon Beckham followed with a sacrifice fly after Moises Sierra singled and Tyler Flowers was hit by a pitch.
Abreu then extended his hitting streak to 18 games with a two-run home run that put the White Sox ahead 5-0. He was tied for the major league lead for homers entering Friday. Abreu has eight home runs and 18 RBIs during his hitting streak, the longest active in the majors.
The Mariners put runners at second and third in the sixth after two singles and a wild pitch, but Sale struck out two to end the inning.
Konerko hit a two-run homer, his fifth, off Charlie Furbush for a 7-0 lead in the eighth.
Sale allowed a single to Bloomquist and a one-out double to Robinson Cano in the ninth. Sale stayed in the game after manager Robin Ventura visited the mound. He allowed a sacrifice fly to Corey Hart and got Kyle Seager to ground out to end the game.
The Mariners had six left-handers in their lineup against Sale. Hart returned from the disabled list to give the Mariners another right-handed bat. Sale was limiting left-handers to an .089 average this season entering Friday.
The White Sox improved to 28-7 since 2010 against the Mariners.
NOTES: The Mariners activated DH Hart and 1B Justin Smoak from the 15-day DL before optioning Smoak to Triple-A Tacoma. Hart is also ready to play at first base or in the outfield, manager Lloyd McClendon said. Hart missed seven weeks due to a strained left hamstring. . Smoak hit .208 in 63 games before suffering a strained left quad. He went on the DL June 10 and hit .204 in 13 games during a rehab assignment with Tacoma. McClendon said Smoak will eventually return as a start. . To make room on the 25-man roster, the Mariners designated OF Cole Gillespie for assignment. He was hitting .254. . Mariners LHP James Paxton threw a bullpen session Friday and is expected to throw a simulated game Monday in Seattle. He is on the 60-day DL with a left lat dorsi muscle strain. . Mariners RHP Felix Hernandez (10-2, 2.10) will start against White Sox LHP Jose Quintana (5-7, 3.44) on Saturday.