Carpenter gave up six runs on seven hits in the first inning. He threw 21 of his 29 pitches in the first inning for strikes, and the Marlins didn't miss. Eleven batters came to the plate, with Chris Coghlan singling twice in the inning.
"I think he'd be the first one to say he probably didn't have the stuff he normally has," Coghlan said about Carpenter. "He's so good that if you don't capitalize when you have him on the ropes, then it's going to be tough to get him."
After Coghlan and Emilio Bonifacio led off the first with singles, Dan Uggla hit a soft, potential force-out grounder to short, but Bonifacio beat the throw to second and Uggla was given a fielder' choice, loading the bases.
Rookie Logan Morrison, trying to win the first base job, followed with a two-run double.
"You don't want to see six runs on seven hits in one inning. I never want to see that. I don't care what situation you're in," said Carpenter, who came into the game with a 5.40 ERA in his first two starts. "Fortunately they don't put those numbers on the back of your baseball card so you don't have to concern yourself with them."
Anibal Sanchez, in line to be the Marlins' No. 3 starter, allowed two runs on four hits in five innings for the win.
"I thought he pounded the strike zone. I thought he did a nice job," Marlins manager Fredi Gonzalez said.
But Gonzalez didn't like Sanchez's approach against Pujols. He walked the slugger on four pitches in the first inning, then gave up a home run on a 3-1 pitch in their second meeting before striking Pujols out in the fifth.
Pujols' home run, with two outs in the third inning, landed well beyond the left field wall in front of the Marlins' clubhouse building. It was the slugger's first home run since Sept. 9.
"He went after him," Gonzalez said about Sanchez's approach against Pujols, "but he went into a three-ball count three times with him."
The Cardinals scored four runs in the seventh inning against right-hander Jose Veras, a favorite to win a bullpen job. Veras, making his third appearance of the spring, had pitched a scoreless sixth inning.
"We're trying to stretch those relievers and I think I might have got him a little fatigued," Gonzalez said. "I thought his fastball had some life to it, his breaking ball had some sharpness."
Scott Strickland pitched a scoreless ninth inning for the save.
Gonzalez said he expects six of seven bullpen spots to go to Veras, Leo Nunez, Brian Sanches, Dan Meyer, Renyel Pinto and Burke Badenhop. ... The Marlins optioned LHP Taylor Tankersley, who's coming back from April 2009 elbow surgery, to Triple-A New Orleans.