ST. LOUIS -- Once again, Chris Carpenter was almost untouchable.
Albert Pujols homered in the first to extend his hitting streak to 13 games and Carpenter contributed a sacrifice fly for the Cardinals, who rebounded from a shutout loss in the series opener and improved to 50-29. That matched their season high at 21 games above .500.
"Carpenter is just unbelievable," Pujols said. "I talked to some guys coming down to first base and they were telling me 'This guy is so nasty.' When you hear guys on the other side saying that, he has something good going."
Aaron Miles had two singles for the Rockies, who are a major league-worst 6-32 on the road. It's also the worst in baseball since the 1982 Twins began 5-32.
"He just did it all," the Rockies' Garrett Atkins said of Carpenter. "We knew we were going to be in for a tough night."
Carpenter (12-4) joined Dontrelle Willis of the Marlins, Livan Hernandez of the Nationals and Jon Garland of the White Sox at 12 wins -- three shy of his season total last year. He had nine strikeouts, leaving him two behind league-leading Pedro Martinez, and two walks.
"I'm not on the way to the All-Star Game yet, but I'm just having fun competing every fifth day," Carpenter said. "Every night is a new night and guys are diving all over the place no matter what the score is, and it's just fun to come to the ballpark and be a part of this team."
Atkins said he'd pick Carpenter to start the All-Star Game.
"Definitely, I've felt the least comfortable against him so far," Atkins said.
Carpenter was 4-1 with an 0.90 ERA in June and has allowed only one run in 33 2/3 innings in his last four starts, including two shutouts, to lower his ERA to 2.60. Ray King struck out Todd Helton with a runner on for the last out in the eighth and Julian Tavarez got three outs.
Rockies starter Joe Kennedy (4-8) lasted 6 1/3 innings, allowing five runs on nine hits. He's 1-7 on the road with a 7.01 ERA.
"I didn't have anything all game," Kennedy said. "I threw 111 pitches and maybe 75 or 80 of them are fastballs, and I'm not a fastball pitcher.
"So I was just trying to battle through and go as far as I could."
Carpenter retired nine of the first 10 batters, issuing only a first-inning walk to Helton, before the Rockies loaded the bases on two hits and a walk in the fourth. He escaped by getting Desi Relaford to pop up to first.
Carpenter had the best defensive play for the Cardinals, too, making a diving stab on Miles' chopper up the middle and then rolling off the mound and making a strong throw while sitting that just missed catching him at first. Helton followed with a single to extend his hitting streak to 10 games but the Rockies again came up empty when Atkins grounded into an inning-ending double play.
So Taguchi had an RBI single and a second run scored on a wild pitch by Kennedy in the second. Carpenter's sacrifice fly in the sixth gave him two RBI on the year and gave the Cardinals a 4-0 lead.
Scott Rolen drove in his first run in 11 games since returning from shoulder surgery, an RBI single in the seventh that knocked out Kennedy, and Pujols added and RBI single in the eighth.
- Rockies RF Brad Hawpe made three nice fielding plays, running down liners in the corner to start the first by David Eckstein and Mark Grudzielanek, and then reaching into the stands to make the catch on Reggie Sanders' foul fly in the fifth. He just missed on a fourth highlight catch when pinch-hitter John Mabry's sinking liner popped out of his glove for a double in the eighth.
- Pujols is 20-for-48 (.417) during his hitting streak, three games shy of his season best from April 19-May 5.
- The Cardinals have hit 17 homers in the first seven games of the homestand.
- Pujols has 81 career homers at Busch Stadium, tied with Ted Simmons for fourth most.