ST. LOUIS (AP) -- Jeff Francis worked five solid innings before the Colorado bullpen took over and Tyler Colvin hit a three-run homer as the Rockies beat the St. Louis Cardinals 3-2 on Tuesday night.
Matt Holliday hit his 14th homer for the Cardinals. Carlos Beltran was 0 for 3 with a walk to end a nine-game RBI streak in which he drove in 15 runs.
Matt Belisle retired four in a row to end the eighth, the biggest out coming on Holliday's groundout with two runners on.
Rafael Betancourt worked out of trouble in the ninth for his 13th save in 17 chances. He had blown three of his last five save opportunities, but got Jon Jay to look at strike three with two on for the final out.
Francis (2-1) beat the Cardinals for the sixth time in seven career decisions, following up on his first victory since July 2010 in his previous start against the Cubs.
Francis settled down after giving up Holliday's two-run homer in the first. The Cardinals had two runners in scoring position the next four innings against the lefty, who earned his 57th win to break a tie with Ubaldo Jimenez for third on the franchise career list and leave him one behind Jason Jennings for second.
Jay singled with one out in the first ahead of Holliday's 14th homer, a low liner that banged off a sign just over the left-field wall. Holliday is batting .500 (30 for 60) in the last 15 games with four homers, 18 RBIs and nine doubles.
Rookie Joe Kelly (1-1) was strong for the fourth time in five outings as the stand-in starter for injured Jaime Garcia, hurt only by Colvin's 10th homer in the third that put Colorado up 3-2. Colvin homered for the second straight game the at-bat after catcher Yadier Molina made a wild throw to second on a sacrifice bunt attempt by Francis that would have resulted in a forceout.
Both teams left the bases loaded in the third, but the Rockies took the lead on Colvin's 10th homer while the Cardinals came up empty when Allen Craig broke his bat on a two-out soft liner to third.
The Rockies stranded three in the fourth, too, when Carlos Gonzalez popped out to short. Gonzalez singled in the third to extend his hitting streak to 11 games.
NOTES: The slow-footed Molina stole his eighth base in nine tries standing up in the sixth, catching Josh Roenicke napping with a huge jump ... Gonzalez is batting .372 (16 for 34) during his streak. ... Cardinals rookie LHP Barret Browning has retired all nine batters he's faced after working a scoreless seventh with a strikeout. ... Daniel Descalso had been 0 for 10 as a pinch hitter before singling in the seventh. ... Colvin is batting .358 (24 for 67) his last 18 games with seven homers and 22 RBIs.