CLEVELAND -- Jose Contreras might still play a big role for baseball's winningest team.
"The way he was tonight, Jose has a chance to be outstanding for us," White Sox manager Ozzie Guillen said. "I had a meeting with the guys before the game and said, 'This is what we've got to fight with. All those rumors are by the media. I'm sure if we need somebody, we'll try and get help.'
"But Jose was impressive."
The White Sox stopped a season-high three-game losing streak. Cleveland, trying to gain ground on the AL Central leaders, lost for the sixth time in seven games and fell 12 games behind Chicago.
Contreras (5-5) struck out seven in his second consecutive win. He issued three walks -- all to cleanup hitter Victor Martinez -- but improved to 2-0 with a 1.83 ERA in five career starts against the Indians.
"I don't pay attention to rumors, I just go pitch," Contreras said. "I looked at tonight as the first day of the season. I was confident I could help my team."
The right-hander had been 0-3 with an 8.10 ERA in four previous starts before defeating Tampa Bay on July 6.
"That's the best I've seen Marte in a year and a half," Guillen said. "If he throws like that -- watch out, we've got something going."
Dustin Hermanson relieved with one out in the ninth and gave up the Indians' fourth hit but finished for his 22nd save in 23 tries.
"We're not trying to look good, we're just trying to win," Hermanson said. "This season is far from over and nothing is locked up. We know we've got to battle, but we've got a good mix to do it with."
Millwood (3-8), moved to the top of the Indians' rotation by manager Eric Wedge in place of left-hander C.C. Sabathia to open the second half, lost for the fourth time in five starts and fell to 0-2 with a 1.29 ERA in three games against the White Sox.
"He was tough as nails," Wedge said. "He did what he usually does. He got tougher as the game went along."
Millwood gave up six hits and one run over eight innings. He struck out a season-high nine without a walk, settling into a groove after throwing 30 pitches in a slight drizzle in the first inning. The game started 11 minutes late because of a brief rain, though the infield had been covered.
"It's a ball I should have caught," Crisp said. "It hit me in the palm of my glove. I had it timed, but I jumped too high."
"Early on I was pretty inconsistent," Millwood said. "I felt like if I kept it right there we had a chance."
In the eighth, he allowed a one-out bunt single to Scott Podsednik, who stole second and third, but Millwood struck out Iguchi and Thomas.
Contreras was helped by two fine defensive plays.
In the fifth, he gave up a one-out double to Jhonny Peralta. Aaron Boone followed with a liner that was caught by diving shortstop Juan Uribe. Contreras balked Peralta to third, but got Grady Sizemore to fly out.
Rowand's hustle in the sixth helped, too. With one out, Travis Hafner hit a high pop toward left. Podsednik never saw it, but Rowand raced over from center and caught the ball behind and to the right of his teammate.
The White Sox improved to 23-9 in one-run games; Cleveland is 14-22, including 0-6 against Chicago.
- Hafner failed to reach base safely for the first time in 25 games.
- Cleveland fell to 10-28 when scoring three runs or fewer.
- Podsednik was 3-for-3 and the White Sox 4-for-4 in steal attempts, making Chicago 95-for-130 this season.
- Chicago improved to 27-5 against the AL Central.