Updated

J.J. Putz worked out of a jam in the ninth and the Arizona Diamondbacks held on for a 4-2 victory to capture their third win of a four-game set with the Colorado Rockies at Chase Field.

The Rockies had runners on second and third with two out for pinch-hitter Carlos Gonzalez, but Putz struck him out to notch his fifth save and secure Arizona's sixth win in eight contests.

Patrick Corbin (3-0) worked out of trouble most of the game, giving up nine hits over 6 2/3 frames. However, Colorado was just 2-for-9 with runners in scoring position and managed just two runs.

"He didn't walk anybody. He just keeps the ball in play," Arizona manager Kirk Gibson said of Corbin. "We made some good plays behind him today. We took care of the ball really good."

Cody Ross and Josh Wilson chipped in an RBI apiece in the victory. Jason Kubel made his return from the disabled list, but went 0-for-3.

The Rockies, losers in six of eight since a hot 13-4 start, saw star shortstop Troy Tulowitzki exit the contest with a left shoulder strain.

When he was thrown out at the plate in the first inning, Tulowitzki appeared to sustain the injury on an awkward slide. He was replaced in the field by Jonathan Herrera in the third and the team is calling him day- to-day.

"It sounds like he kind of jammed his shoulder sliding into the plate," Colorado manager Walt Weiss said of Tulowitzki. "We'll have to reevaluate him tomorrow, see how it feels tomorrow."

Jon Garland (2-2) was tagged for four runs -- three earned -- on eight hits and two walks. Eric Young had three doubles and scored a run on Dexter Fowler's base hit in the setback.

Arizona took advantage of Garland's control issues in the third and grabbed an early 2-0 lead.

While facing Kubel with runners on second and third, Garland's pitch got away from catcher Wilin Rosario and Cliff Pennington scored easily. Gerardo Parra advanced to third on the play and then also crossed the plate when Garland threw a wild pitch.

The D'Backs then added a run in the third and fourth innings to build a four- run cushion. Wilson doubled home Paul Goldschmidt, who singled to start the fourth, and after Parra began the fifth with a triple, Ross sent him home with a base hit to center.

Colorado cut its deficit in half in the sixth, which Young led off with his third straight double. He then came around to score on a single from Fowler, who moved to third on a bunt by Herrera and crossed the plate on a wild pitch from Corbin.

The Rockies, though, were unable to score in the first, fourth, seventh and ninth innings, stranding runners in scoring position in each.

Game Notes

The Diamondbacks placed shortstop Didi Gregorius on the 7-day DL with a mild concussion prior to the game. The move is retroactive to April 27 ... The Rockies designated infielder Chris Nelson for assignment and infielder Nolan Arenado made his big-league debut. He went 0-for-3 with a walk.