Carroll hit a go-ahead RBI double in the fifth and added a solo homer in the seventh, leading the Cleveland Indians to an 8-4 victory over the Chicago White Sox on Sunday.
The Indians have won 12 of 18 and three straight series against division rivals but still trail Detroit in the AL Central by 11½ games.
Contreras was coasting with a 3-0 lead but faltered in the fifth. He gave up back-to-back singles and walked Trevor Crowe to load the bases with no outs. Andy Marte followed with an RBI infield single and Wyatt Toregas had a sacrifice fly. With runners on first and second and two outs, Carroll doubled down the left-field line, scoring two and giving the Indians a 4-3 lead. Contreras' day ended when he walked Asdrubal Cabrera.
"You make him work on a day like today, as hot as it was out there, and you make a guy work and eventually you can catch up to him," Indians manager Eric Wedge said.
Contreras (4-11) allowed four runs on six hits in 4 2/3 innings. He struck out two and walked two. He is 0-4 in his last five outings with a 6.75 ERA and failed to make it out of the fifth inning three times.
White Sox manager Ozzie Guillen said Contreras struggled because of the heat.
"Believe me, I hope it was that because if it wasn't we're in trouble," Guillen said. "He was cruising real well, throwing the ball real well, attacking the strike zone the way we think he can do then all of a sudden everything was bad."
Contreras said the weather was not a factor.
"I wasn't tired at all," Contreras said through a translator. "I lost my rhythm that's why the pitches were up in the zone and started getting hit."
There were no testy moments after Guillen earlier Sunday warned the league his pitchers would retaliate by throwing at opposing batters if his team continued getting hit by pitches. The Indians hit three Chicago players on Saturday.
Cleveland starter David Huff (6-6) shook off a three-run second inning to pitch into the seventh. The left-hander allowed four runs on eight hits in 6 1/3 innings.
"I think coming back after that three-spot and putting up all those zeros was real big," Huff said. "It was one of those things where they got to me a little bit and I just had to really concentrate at the next guy,"
A.J. Pierzynski and Alexei Ramirez hit solo home runs for the White Sox, who fell three games behind the Detroit Tigers in the AL Central. The White Sox are 3-10 in the last 13 games against AL Central division opponents.
After winning three of four games against the Yankees and taking a three-game series from the Angels, Chicago ended its homestand by losing two of three to the Indians.
"I loved the way we started, I don't like the way we finished, that's how I can describe it," Guillen said. "With Cleveland coming to town, I'm making it clear, you have to be careful with those type of teams because they're loose, they're going to come out and beat you. They're not going to lay down and feel sorry for themselves."
With a runner on first and two outs, White Sox reliever Tony Pena allowed a single to Marte, putting runners on first and second, Toregas followed with an RBI single to put the Indians up 5-3.
Carroll tagged White Sox reliever Scott Linebrink with a leadoff homer in the seventh. It was Carroll's second of the season.
Pierzynski's home run came in the second inning after the ball hit off a leaping Grady Sizemore's glove and went over the wall for Pierzynski's 12th of season.
Ramirez ended Huff's outing with a solo home run in the seventh.
Luis Valbuena hit a triple off Linebrink in the eighth and scored on Crowe's sacrifice fly. Later in the inning, Toregas hit an RBI single for his third RBI of the game off White Sox reliever Octavio Dotel.
Indians RHP Jake Westbrook had his Sunday rehab start canceled after he experienced arm soreness. He will have his arm examined by Dr. Lewis Yokum in Los Angeles this week to determine if he should continue his rehab. He had Tommy John surgery in June 2008. ... White Sox DH Jim Thome, who was out of the starting lineup, struck out in the ninth as a pinch hitter.