Chris Sale took a perfect game into the seventh inning before finishing with a one-hitter, and the White Sox beat the Los Angeles Angels 3-0 on Sunday night to avoid a three-game sweep.
Mike Trout's sharp single to center ended the perfect game bid with one out in the seventh, on Sale's 70th pitch.
Sale (4-2) struck out seven on just 98 pitches for his first career shutout and third consecutive win. Sale's one-hitter is Chicago's first since Zach Stewart had one on Sept. 5, 2011, at Minnesota.
Alexei Ramirez's two-run two-out single in the bottom of the seventh drove in Tyler Flowers and Tyler Greene to give Sale the lead and chase Los Angeles' C.J. Wilson. Alex Rios then doubled off reliever Michael Kohn to drive in Ramirez, who had three hits and scored a run.
Chris Iannetta reached base on Ramirez's throwing error in the ninth for Los Angeles, which had two base runners.
Wilson (3-2) gave up three runs and six hits while striking out three and walking four in 6 2-3 innings. He lost his second straight decision after losing to Houston on Tuesday.
While Chicago's offense was last in the American League in hitting at .227, the White Sox had shown signs of improvement, having scored 16 runs over their previous three games.
It didn't carry over Sunday, but Chicago at least had some early chances.
After doubling with two outs in the bottom of the second, Casper Wells was thrown out by Josh Hamilton at home plate on a single by Tyler Flowers to end the inning. It was the second game in a row Hamilton threw out a runner at home, after he got Ramirez on Saturday.
The White Sox threatened in the fourth after Wilson walked Paul Konerko and Dayan Viciedo, but didn't score. With one out, Mark Trumbo made a diving catch on Jeff Keppinger's liner to left, and then Wells flew out to right to end the inning.
Chicago also had a scoring chance in the sixth as Ramirez led off with a single and stole second and third, but was stranded on third when Keppinger flew to left.