With the win, Cleveland increased its lead over Chicago to a game and a half for second place in the Central. The Tribe sits two-games back of idle Detroit for first.
Justin Masterson (10-7) allowed two runs on seven hits and three walks through six innings in Cleveland's eighth win in their last 12 games.
Chris Perez tossed a perfect ninth to earn his 27th save of the year.
Chicago starting pitcher Philip Humber left the game in the second inning after he was struck in the head with a ball. Will Ohman (0-3) took the loss, allowing the game-deciding runs in the sixth inning.
Paul Konerko smacked his 28th home run of the year in the White Sox's second straight loss after a three-game win streak.