The Cardinals and Reds split a four-game series.
Carpenter (4-0) allowed singles to Chris Dickerson in both the first and fourth innings and on both occasions Dickerson was erased in a double play.
The only other hit off Carpenter was a two-out home run by Laynce Nix in the eighth.
Aaron Harang (5-6) also went the distance for the Reds, giving up eight hits and striking out four.
Albert Pujols homered and drove in all three St. Louis runs. He delivered a two-run shot in the third and doubled home Colby Rasmus in the sixth.
It was the 26th complete game of Carpenter's career. The homer by Nix was the first run Carpenter had allowed this year in three home starts.