And when he returned to majors Monday night, the 37-year-old right-hander was ready.
Contreras allowed only one hit in eight strong innings, getting his first win in nearly a year, as Chicago beat the Detroit Tigers 6-1 to earn a doubleheader split.
Detroit won the opener 5-4 with Brandon Inge singling in the go-ahead run in the ninth.
When Contreras started 0-5 this year after a quick recovery from an Achilles tendon rupture last August, he knew he needed to work on his game.
"I needed to work on my pitches. I needed to work on my location and the only place to do it was Triple-A. I decided to go down to Triple-A and work on stuff," Contreras said.
"Obviously I came back and used it today and it paid off with a great outing."
Contreras (1-5), officially recalled from Triple-A between games, went to Charlotte on May 10 and made five starts.
"We needed a good outing," manager Ozzie Guillen said, adding that Contreras had earned a spot back in the rotation, if the White Sox can find a way to make it work.
The 37-year-old Contreras allowed a two-out double to Clete Thomas in the first and had two stretches of 11 straight batters retired in earning his first win since June 27, 2008. He walked one and struck out three.
"Getting a win after having five losses, I feel like I contributed, like I am giving something back to the team," Contreras said.
"We saw what he's capable of and he pitched an excellent game tonight," Detroit manager Jim Leyland said.
"We didn't do anything to challenge him at all. We had terrible at-bats all night long. Terrible. Sickening at-bats if you want to know the truth."
Chicago's Alexei Ramirez, Scott Podsednik and Jim Thome homered off Detroit's Jeremy Bonderman (0-1), who was making his first major league appearance since June 1, 2008 and was activated from the disabled list between games. Bonderman had surgery June 30 last year to correct a condition that caused a blood clot in his pitching arm.
He lasted four-innings plus, gave up eight hits and was charged with six runs.
"I don't know if I felt rusty," Bonderman said. "I just didn't execute. There's really no excuse other than that I just didn't pitch well and didn't give us a chance to win at all."
Ramirez homered in the first, Podsednik hit his first of the season in the second and Thome drove out the 551st of his career, a two-run shot in the third for a 4-0 lead.
In the opener, Inge singled home the go-ahead run shortly after an error on Chicago third baseman Josh Fields in a loss that had Guillen fuming.
"I was basically just trying not to strike out," Inge said.
Miguel Cabrera reached on Fields' error with one out. Thames followed with an infield single off shortstop Alexei Ramirez's glove.
The fielding gaffe in the ninth wasn't what had Guillen stewing. He was more upset about his team's inability to move runners and get down bunts.
"If this was the 1980s, [none] of these guys would be in the big leagues right now, because if you hit .210-.230 and you can't execute, I don't think you should be out here," Guillen said.
"When you can't bunt, hit-and-run, squeeze and move the guy over, you better hit 40 home runs and drive in 140."
He didn't name names, but the White Sox manager was visibly upset.
"Somebody has to change because if we don't do what we're supposed to do, I'll take the blame because that's my job," Guillen said.
" ... We're not doing it. We got excited here and there. After that, it was a boring game. Really, really, really bad baseball games. Terrible the way the guys played the game."
Fernando Rodney worked the ninth for his 11th save in as many chances for the AL Central leaders with Inge starting a game-ending double play at third.
Podsednik hit his first homer since May 31, 2008, while with the Rockies. ... Guillen confirmed a Chicago Tribune report that the White Sox had agreed to a deal with former starter Freddy Garcia. He was the winning pitcher in the clinching Game 4 of the 2005 World Series.