Jose Contreras allowed four singles while pitching into the seventh inning, and A.J. Pierzynski tied a career high with four hits as the White Sox snapped the first-place Indians' eight-game winning streak, 8-0 Sunday.
It was one of the rare times this season that Chicago, which had lost 18 of 21, put good pitching and strong offense together.
"This year, I don't believe we've done it," said manager Ozzie Guillen, who blasted his team's poor performance during a three-game sweep at Texas earlier in the week. "It's fun to see that we don't have to go out there and battle and lose."
Contreras (8-16) won consecutive starts for the first time since last September as the White Sox broke a five-game losing streak, and also ended their longest road losing streak since 1962 at 11 in a row.
"It's great for him and it's great for us," Guillen said of Contreras, who lost seven consecutive starts in June and July. "The last two times he's been the Jose we want him to be."
Cleveland, which opened a 5½-game lead over the Detroit Tigers in the AL Central during its win streak, fell to 13-4 since Aug. 15. On Monday in Minnesota, the Indians start a 10-game trip that continues to Los Angeles and Chicago.
Pierzynski broke an 0-for-17 slump by going 4-for-5 for the White Sox, who tied a season-high with 18 hits -- 17 singles and a solo homer by Darin Erstad.
A questionable call by second-base umpire Laz Diaz helped Chicago take a 3-0 lead in the second inning against Jake Westbrook.
The White Sox loaded the bases on three singles. The third hit was a ground ball by Danny Richar that appeared to hit Andy Gonzalez running from first, but Diaz ruled that second baseman Asdrubal Cabrera dropped the ball. TV replays showed the ball getting tangled in Gonzalez's jersey before Cabrera could get a glove on it.
"It looked like Asdrubal got there and the runner hit him," Indians manager Eric Wedge said. "They (umpires) said he had the ball and was trying to make a tag."
Cabrera agreed with the TV replays.
"He hit the ball first," the rookie said of Gonzalez.
Chicago made it 4-0 in the fourth when Cabrera did drop a ball. With runners on second and third and two outs, Thome hit a slow grounder between first and second. Cabrera, playing in short right field as part of a defensive shift, charged in but misplayed the ball for an error, allowing Uribe to score from third.
Cleveland loaded the bases with one out in the fourth on a walk and its first two hits, but Trot Nixon bounced into an inning-ending double play on the first pitch.
Westbrook (5-8) allowed three earned runs and 11 hits over five innings. The right-hander, who went 4-1 in six August starts, walked three and struck out six.
"It was just not a good day," Westbrook said. "I didn't pitch well and they hit a few that found holes."
Left-hander Cliff Lee made his first career relief appearance after 125 starts in the sixth and allowed an RBI single by Pierzynski that made it 5-0.
Contreras walked six and struck out five in 6 2/3 innings. He left with runners on second and third and two outs in the seventh. Reliever Boone Logan struck out Grady Sizemore to end the threat, and Ehren Wasserman and Bobby Jenks completed the shutout.
Erstad hit his third homer in the eighth off Tom Mastny.
- The White Sox hit only .219 and had a 5.36 ERA during their 11-game road losing streak.
- Pierzynski's four-hit game was the 10th of his career.
- Indians C Victor Martinez threw out two of four runners trying to steal and is 24-for-83 (.289) overall.
- Cabrera's error was Cleveland's first in 11 games.
- The crowd of 37,718 spent most of the game gawking at fighter jets buzzing the downtown skyline during an air show. Players and umpires had their attention diverted between pitches, too.