Some of the Marlins' six hits off Carpenter weren't rockets, but they were well-placed.
"I made some good pitches. I made some bad pitches, said Carpenter, still unbeaten at 4-0. "I just didn't pitch well enough to win."
The Cardinals have scored no more than three runs in 12 of the last 16 games, and Albert Pujols, for the third time in his career, has gone hitless in four straight games.
Pujols hit a drive 420 feet for an out in the third inning, when the Cardinals scored all their runs.
"If that ball drops, we score two more runs," Pujols said. "We might leave the inning up 6-0. But it didn't. So what else can you do?"
MARLINS 4, CARDINALS 3: Jason Motte threw just three pitches in the ninth inning. Jeremy Hermida hit the third for a game-ending homer. Rick Ankiel drove in two of the Cardinals' three runs with a third-inning double.