Pujols scored three times and Holliday delivered a pair of run-scoring singles for the Cards, who shook off a steady rain to finish up their first-ever four-game sweep of the Marlins in Florida.
The four-gamer also was the first such road sweep for St. Louis since 2004.
Ryan Theriot drove in the go-ahead run with a seventh-inning RBI single off Burke Badenhop after Mike Dunn (5-6) had allowed a pair of runners to reach with one out.
Mitchell Boggs (2-3) earned the victory despite allowing Florida to tie the game in the sixth on Bryan Petersen's pinch-hit two-run homer.
Cards starter Jamie Garcia went five innings, allowing two runs on six hits.