MIAMI (AP) - Albert Pujols hit a two-run homer in the first inning, then Chris Carpenter and the St. Louis bullpen made it stand up Saturday night in a 2-1 win over the Florida Marlins.

Carpenter (7-8) gave five hits over 6 2-3 innings as the Cardinals won for the fourth time in five games.

Fernando Salas, the fifth Cardinals pitcher, worked a scoreless ninth for his 21st save in 24 chances.

Ricky Nolasco (8-8) gave up 10 hits in seven innings.

Daniel Descalso had three hits for the Cardinals. Sluggers Matt Holliday, Lance Berkman and Pujols each had an extra-base hit, giving the trio 10 in the first three games of the series.

The Cardinals held on for the win despite leaving 12 men on base. They were 1 for 14 with runners in scoring position.

Carpenter struck out seven and walked two. He's won six of his last seven decisions and defeated the Marlins for the first time since August 29, 2005.

Rafael Furcal hit a leadoff single to start the game, though replays seemed to show right fielder Mike Stanton caught the ball before it hit the ground. Two batters later, Pujols hit his 26th home run and second in his last three games.

The Marlins made it 2-1 in the fourth when Dewayne Wise was hit by a pitch with the bases loaded. Nolasco grounded into a double play to end the Marlins threat.

NOTES: Marlins INF Alfredo Amezaga went 1 for 4 in his first game back with the team after they acquired him in a trade with the Rockies. Amezaga said it was "like a dream come true again" to return to the club that he played with for four seasons (2006-09). ... Mired in a 1-for-17 slump, Cardinals OF Jon Jay singled in the eighth. ... LHP Jaime Garcia will start Sunday's game as the Cardinals look to complete the sweep. Garcia is 5-1 with a 1.54 ERA in 11 starts against NL East teams. The Marlins will counter with RHP Javier Vazquez, who is 4-2 with a 2.13 ERA in his last eight starts.