The Cards had runners in scoring position in five different innings, but couldn't score against Marlins starter Chris Volstad in losing, 4-0.
The loss left the Cardinals at 77-72, 6 1/2 games behind Cincinnati in the National League Central with 13 games to play.
"Our offense has struggled a little bit this year," outfielder Colby Rasmus said. "All we can do is let it go and come back tomorrow."
The game lasted just an hour and 52 minutes. Someone suggested to Cardinals manager Tony La Russa that it had the feel of a Spring Training game.
"It certainly had that appearance," he said.
La Russa acknowledged the complete-game work of Volstad, but noted, "We made a lot of quick outs."
"We were aggressive, but we took some good pitches, too," the manager said. "We were in between a lot."
The visitors put themselves in an early hole when Chris Carpenter, who came in with a 15-7 record, gave up four runs in the second inning.
Carpenter allowed an inning-opening double to Dan Uggla and then walked two hitters, sandwiched around a flyout. The last walk, to Mike Stanton, was intentional.
That brought up light-hitting catcher Brad Davis, who hit a 2-0 pitch over the left-center-field wall for his first career grand slam.
Carpenter called it a "spinning cutter" that spun over the plate.
Davis understood why the Cardinals preferred to pitch to him over Stanton. He had two homers; Stanton 20.
"I'm sure if the situation came up tomorrow, they'd probably do the same thing," Davis said. "They played the odds."
The Cardinals' offense was frustrated throughout the game.
They wasted an inning-opening double by Matt Holliday in the second. Albert Pujols and Rasmus walked in the fourth, to no avail. Pedro Feliz singled in the fifth and was sacrificed to second by Carpenter, but was stranded there.
In the sixth, Yadier Molina flied out to right after consecutive two-out singles by Holliday and Rasmus.
Molina had a two-out double in the ninth, but touted prospect Mark Hamilton, in his first Major League at-bat, flied out to center to end the game.
Hamilton said he knew Volstad from the Minors and was looking early for a certain pitch. Instead, Volstad painted the plate's corner with a changeup and then a sinker, both strikes.
"So I went into two-strike mode trying to put the bat on the ball," Hamilton said. "He elevated a fastball, which was probably out of the zone. I thought I put a pretty good swing on it, but I couldn't quite center it well enough."
Thus ended the game and Hamilton's Major League debut.
"It was great to go up there and stand in the on-deck circle," Hamilton said. "It certainly was exciting to get a chance. I wanted to do a lot more, at least get on base, but it was good to get that first at-bat."
Carpenter left after six innings. He gave up the four runs on five hits and two walks, striking out six.
He was left to ponder how one bad inning did him in.
"I was in the strike zone the whole time and kept the ball down for the most part," Carpenter said. "And my curveball was pretty good."
Still, the Cardinals couldn't come up with any answers offensively.
They are third in batting average in the NL, but sixth in runs scored.
"The tendency is to try to do more yourself to help the team," Feliz said. "But sometimes when you try to do too much, you don't help yourself or the team."
The Cardinals left for Pittsburgh shortly after the game to commence a three-game series. That is their third city in three days as they try to build some momentum for their playoff hopes.
Charlie Nobles is a contributor to MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.