PHOENIX -- Patrick Corbin's success has come from a simple formula -- be aggressive and throw strike one.
|More on Rockies-Diamondbacks|
|More MLB coverage|
"I thought today I was as sharp as I've been," said the 23-year-old. "I got a couple of fastballs up and that hurt me a little bit but I was able to keep us in it."
Corbin (3-0) scattered nine hits -- four coming in his final 1 2/3 innings -- and struck out five. Corbin didn't walk a batter for the second straight outing and hasn't allowed a base on balls in his last 15 innings.
"When you're getting ahead with that first pitch, the second pitch you can throw whatever you want," Corbin said. "It makes it 100 times easier."
Corbin became the second Diamondbacks pitcher to throw at least six innings and allow two runs or fewer in his first five starts of the season.
"He just keeps the ball in play," said Arizona manager Kirk Gibson. "He just competes. He works on things and understands the tools that he's acquired."
Rockies All-Star shortstop Troy Tulowitzki was lifted in the bottom of the third inning because of a strained left shoulder.
J.J. Putz pitched the ninth for his fifth save for the Diamondbacks.
Colorado has two wins in its last eight games after opening the season 13-4, falling into a first-place tie with Arizona in the NL West.
"As long as you continue to go out on a day in and day out basis and play good hard baseball and continue to do the right things, it will definitely workout" said Rockies starter Jon Garland. "We have already seen what we are able to do when we get some guys hot offensively and we are throwing the ball good."
Tulowitzki reached on a fielder's choice in the first inning and was attempting to score two batters later on a single by Michael Cuddyer when he slid awkwardly into home plate. Tulowitzki was easily tagged out by Miguel Montero from a throw by left fielder Jason Kubel.
"I didn't know he got hurt on the play," said Rockies manager Walt Weiss. "It sounds like he jammed his shoulder sliding into the plate."
Top Colorado prospect Nolan Arenado was called up from Triple-A Colorado Springs and went 0 for 3 with a walk while starting at third base.
The 22-year-old Arenado hit .364 with 11 doubles, three homers and 21 RBI in 18 games for the Sky Sox. He was taken in the second round of the 2009 draft.
To make room, the Rockies designated INF Chris Nelson for assignment.
Arizona broke through against Colorado starter Jon Garland (2-2) in the third, scoring twice.
Cliff Pennington singled to right, went to second on a sacrifice and moved to third on a single to left by Gerardo Parra. After Cody Ross grounded out to advance Parra to second, Pennington scored on a passed ball charged to Wilin Rosario.
Three pitches later, Garland threw a wild pitch to score Parra for a 2-0 lead.
"You try and be aggressive without running into outs on the bases," Gibson said. "We're aware of what guys throw in certain counts and when to be aware to dirt-ball reads. `G' made a good read on that because they were playing way off at third place which allowed him to come further down the way."
Paul Goldschmidt extended the lead 3-0 in the fourth when he singled and scored on Josh Wilson's double off the left-center field wall and Parra tripled to lead off the fifth and scored on a Ross single to make it 4-0.
The Rockies cut the lead in half in the sixth. Eric Young Jr. doubled for the third time in three at-bats and scored on a single to left by Dexter Fowler. Fowler later scored on a one-out wild pitch to pull Colorado to 4-2.
Colorado chased Corbin after putting runners on first and second with two outs in the seventh. But Matt Reynolds retired Young on a short popup in front of the dirt cut around home plate on the third base side to end the threat.
Garland allowed four runs -- three earned -- on eight hits with two walks, one intentional. The right-hander, who entered the game 3-3 with a 4.60 ERA against his former team, struck out two.
"He could have went out there for another inning if we don't get to his [lineup] spot," said Rockies manager Walt Weiss. "It's another one of our starters that gave us a chance to win the game."
- Colorado is 1-9 in its last 10 series at Chase Field.
- Putz threw six straight balls and bounced a throw to first base.
- Parra extended his career-best hitting streak to 13 games.
- Arizona INF Martin Prado, mired in the midst of a 1-for-22 slump, was given the day off.
- Garland has pitched past the sixth inning only once in five starts.
- Before the game, the Diamondbacks activated OF Jason Kubel off the 15-day disabled list and placed SS Didi Gregorius on the 7-day concussion DL. Gregorius was hit in the head with a pitch by Josh Outman on Friday.
- Kubel, who started in left field, was 10 for 30 with two doubles, two homers and six RBI before he was placed on the disabled list with a strained left quad on April 13.