He didn't look it once he took the mound.
Franklin Morales pitched the ninth for his third save in four chances to preserve the win for Contreras.
"It was very important to make an impression on my teammates and also because I struggled in Chicago," Contreras said.
The Rockies traded for Contreras to fill in for the injured Aaron Cook, who is on the disabled list with a right shoulder strain. The Cuban proved his value right away and earned his second win in the last two months.
Contreras (1-0), mixing his fastball with an effective splitter and slider, kept the Diamondbacks in check into the seventh. He worked out of a two-on, no-out jam in the fourth by striking out Allen on an 85-mph slider and getting Chad Tracy to ground into an inning-ending double play on a 92-mph fastball.
"He did a real good job a couple of times with traffic," Rockies manager Jim Tracy said. "He got a huge ground ball with runners on first and second to end the inning with the Tracy double play."
In the sixth he struck out Allen on a 77-mph curveball with Justin Upton on second to end the inning.
Contreras gave up one run on eight hits, struck out five and walked one in his first National League start.
Once he got ahead of the hitters, Contreras used his splitter to finish them off.
"It's a good split," Chad Tracy said. "He was using it in different counts and when he got ahead of you it's tough to lay off of."
Rockies catcher Yorvit Torrealba said the Diamondbacks players told him the splitter was "absolutely filthy."
"It looked like it kind of stopped, started kind of hard, then it would stop and go down," Torrealba said.
Brandon Allen homered for the Diamondbacks, who have lost four of their last five.
The Rockies gave Contreras an early lead by jumping on Doug Davis (7-12) in the first inning. Gonzalez led off with a homer to dead center, his 10th of the year. Smith followed with a double, went to third when Upton misplayed the ball and scored on Todd Helton's groundout to first.
Allen cut the lead to 2-1 with a one-out homer in the second, his third of the season.
The Rockies got the run back in the fifth when Smith doubled with two outs and scored on Helton's single to right, just beating the throw home from Upton.
The Diamondbacks ran themselves out of a possible big inning in the seventh. After Chris Young's one-out single, pinch-hitter Alex Romero singled to center. Gonzalez threw to third to try to get young but third baseman Ian Stewart instead threw to shortstop Troy Tulowitzki to nail Romero at second base.
"The throw by Gonzalez was a terrific throw," Jim Tracy said. "That was a huge defensive play."
It summed up the night for the Diamondbacks.
"We had momentum going in our direction twice with runners on tonight," Arizona manager A.J. Hinch said. "That will keep me up tonight."
Davis gave up three runs on seven hits and struck out four in six innings.
Smith made it 4-1 when he led off the eighth with his 13th home run of the year.
The Diamondbacks activated OF Eric Byrnes from the DL on Saturday. He pinch-hit for Gerardo Parra in the ninth and singled. ... Rockies LHP Jeff Francis threw a bullpen session Saturday. ... Torrealba extended his hitting streak to a career-best 14 games with a single in the second inning. ... Smith is hitting .486 with 12 RBIs in his last 13 games.