Ryan Ludwick hit a two-run homer and Colby Rasmus also drove in a run for the Cardinals, who knocked Cubs starter Randy Wells (3-3) from the game after only 16 pitches.
Wells allowed five runs on six hits without retiring a batter, and St. Louis sent nine batters to the plate before reliever James Russell finally got out of the inning.
Carpenter (6-1) fared much better on the mound for St. Louis, scattering seven hits over 6 2-3 innings with five strikeouts and one walk. The only run he allowed came on Tyler Colvin's pinch-hit homer in the fifth, the first of his career.
The victory was the second straight for St. Louis, and came in the first meeting of the season between the NL Central rivals.
The outcome wasn't in doubt after the first inning, when Felipe Lopez started the barrage against Wells. Ludwick followed with a double and Pujols drove in a pair with his single to center. Matt Holliday followed with a single, and Rasmus made it 4-0 with his single to right.
Molina capped the scoring with a two-run double to right, knocking Wells from the game.
Wells has lost three of his last five starts and hasn't won a decision since April 30, but his biggest problem has been consistency, not necessarily his pitching. He was knocked out of a game May 6 at Pittsburgh when he allowed six runs in two innings, but also lasted at least eight innings in two of his last four outings.