DENVER -- The Colorado Rockies finally got solid pitching to back up their bats and handed Arizona a costly defeat.
Tyler Chatwood pitched effectively into the sixth inning, Andrew Brown homered and the Rockies beat the Diamondbacks 4-2 on Monday night to end a nine-game losing streak.
Jason Kubel homered for the Diamondbacks, who have slim hopes of a late-season playoff push. Arizona fell 5 1/2 games behind St. Louis with nine remaining in the race for the second NL wild card.
"We're not out of it yet," Kubel said. "Some things can happen."
Tyler Colvin and Charlie Blackmon had two hits each for Colorado. Rafael Betancourt worked the ninth for his 30th save.
For one night, at least, the Rockies (59-94) avoided tying the franchise record for losses in a season with a useful performance from Chatwood. Colorado's pitchers had allowed 33 runs on 48 hits through the first three games of this series before holding the Diamondbacks to five hits Monday.
The Rockies' offence couldn't keep pace despite piling up 42 hits over the weekend.
"When you get effective starting pitching we can be a very effective ballclub," manager Jim Tracy said. "We can hit, and we've done it all year. Now, we get the other parts squared away the way we want, we can build on it."
The Rockies allowed at least four runs in eight games during their losing streak and three times gave up 10 or more. Chatwood (5-5) settled things down in the finale of this four-game series. He gave up three hits and two runs before three relievers combined to retire 10 of the final 12 Arizona batters.
"Getting ahead and staying ahead," Chatwood said. "I've been building off my last two outings. The results weren't there but I felt good about them. Just building off that and kept it going."
Betancourt set down his first two in the ninth before yielding consecutive singles. John McDonald lined out to right field to end the game.
"Losing nine games in a row, we can get that filed away," Tracy said.
Trevor Cahill (12-12) allowed three runs -- two earned -- on nine hits and struck out six in six innings.
"He gave us a chance to win but they just shut us down tonight," Arizona manager Kirk Gibson said. "We had an opportunity, our best opportunity, late in the game off Betancourt and it just didn't work out."
Colorado led 1-0 entering the fourth when Kubel sent an 82 mph changeup into the second deck in right field for a two-run homer. It was his career-high 30th.
"I got a changeup that he left out over the plate fortunately that was my bat speed tonight and it went out," Kubel said. "But he looked pretty good today."
The Rockies responded in their half of the inning. Colvin led off with a single, Chris Nelson walked and Matt McBride singled to load the bases.
Colvin scored on a groundout by Brown, and Nelson scored on DJ LeMahieu's groundout to make it 3-2.
Brown hit a solo home run -- his fourth of the season -- in the eighth to make it 4-2.
The Rockies got the first two on in the fifth but couldn't cash in.
Colvin's RBI single in the first gave Colorado a 1-0 lead.
NOTES: The Diamondbacks scratched LHP Tyler Skaggs from Tuesday's start against San Francisco. "Our organization made a decision," Gibson said. RHP Josh Collmenter will start against the Giants. ... Arizona 2B Aaron Hill was out of the lineup due to sickness. ... Rockies OF Dexter Fowler (right wrist) did not start but came in as a defensive replacement in the ninth. ... OF Carlos Gonzalez (tight left hamstring) was not in the starting lineup for the fifth straight game. Gonzalez came in as a pinch-hitter Saturday and Sunday.