The Cardinals trailed 5-1 after four innings and 6-4 through six, but scored once in the seventh prior to reaching Adam Ottavino (0-3) for two runs in the eighth to claim the rubber match of this three-game set.
Daniel Descalso added a pinch-hit double that tied the game and scored the go- ahead run on Carpenter's grounder up the middle that caromed into center field after being deflected by Rockies' shortstop Troy Tulowitzki.
Matt Holliday went 3-for-4 with an RBI to aid the comeback and Matt Adams contributed a pair of hits, including a two-run homer. Carpenter also finished with two RBI.
Corey Dickerson had a two-run double for the Rockies and Drew Stubbs belted a solo homer in the loss, Colorado's eighth in nine games.
Ottavino came on in the eighth to protect a 6-5 lead and was greeted by a single from Allen Craig, but retired the next two batters before Descalso's liner to left dropped in fair territory and Mark Ellis slid just under the tag of catcher Wilin Rosario to score the tying run.
After Carpenter sent St. Louis in front and the Rockies failed to score in the bottom of the eighth, the Cardinals tacked on two more runs in their final at- bat. Yadier Molina and Craig each delivered sacrifice flies to bring in Adams and Jhonny Peralta, who had reached on a single and a walk, respectively.
Carpenter's double made a winner out of Pat Neshek (2-0), who tossed a 1-2-3 seventh. Trevor Rosenthal recorded the last four outs to nail down his 23rd save.
The game featured a matchup of pitchers both making their major league debuts, with the Cardinals promoting prospect Marco Gonzales from Double-A Springfield and Colorado sending out 28-year-old career minor leaguer Yohan Flande in place of an injured Christian Bergman.
Gonzalez, a native of nearby Fort Collins and the Cardinals' first-round pick in the 2013 First-Year Player Draft, had an impressive beginning to his intro. The 22-year-old allowed just a walk through the opening three innings, laced a double in his initial at-bat and scored the game's first run when Holliday drilled a single to left two batters later in the top of the third.
The young lefty, whose father, Frank, is a minor league pitching coach in the Rockies' organization, was shellacked in the fourth, however, as Colorado struck for five runs to move in front.
Stubbs jump-started the Rockies' offense by cranking Gonzalez's first pitch of the frame over the wall in left, and five of the next six hitters reached base as well. Dickerson's hard two-run double into the gap gave Colorado a 3-1 advantage, with D.J. LeMahieu following with an RBI single and Flande getting into the act with a grounder to third that plated Dickerson for the fifth run of the inning.
Gonzalez made it through the fifth unscathed, finishing with a line of five runs allowed on seven hits.
Flande also had his moments early on. The left-hander struck out the side in order in the second and permitted just one run until the Cardinals got their bats untracked in the fifth.
Ellis led off the inning with a deep double and later came home on a Carpenter sac fly to bring St. Louis within 5-2. Holliday then doubled off the center- field wall in front of Adams' third homer of the series, which trimmed Colorado's lead to a run.
The Rockies extended the margin in the sixth, though, as Josh Rutledge greeted reliever Seth Maness with a single and was brought in on Charlie Blackmon's two-out double.
St. Louis answered in the seventh, with Carpenter's leadoff walk against Rex Brothers preceding Holliday's third hit of the day and a Peralta sacrifice fly that trimmed the deficit to 6-5.
Flande also lasted five innings, surrendering four runs on six hits while fanning four.