Atlanta fell one game behind the Philadelphia Phillies, who beat the New York Mets 3-0 behind Roy Oswalt.
Pujols passed Hall of Famer Stan Musial for the most multihomer games in Cardinals history with 38, including five this season.
Kyle Lohse (3-7) allowed nine hits but only two runs in 5 1/3 innings to beat Tim Hudson (15-8), who gave up six runs in five innings in his third straight loss.
The second-place Cardinals gained a game in the NL Central but still trail Cincinnati by six. With a split of the four-game set, St. Louis won the season series 6-2.
Nate McLouth had a homer and a double for Atlanta. Cardinals center fielder Colby Rasmus robbed McLouth of another possible homer with a leaping catch at the wall in the fourth.
Pujols had three RBIs on Saturday, giving him 10 straight seasons with more than 100. He leads the NL with 39 homers and 104 RBIs. He also hit a homer Thursday in the opening game of the four-game series.
Cardinals manager Tony La Russa said before the game that Pujols' left elbow is feeling better, allowing the first baseman to follow through on his swings. Pujols had difficulty after landing on the elbow while making a catch in Pittsburgh late last month and hurting the elbow again a few days later.
Pujols had no difficulty following through on his powerful cuts against Hudson. The slugger gave the Cardinals a 1-0 lead with a homer over the 400-foot mark in center in the first inning and added a line-drive shot to left in the fifth.
Pujols' second homer cleared the wall so quickly that left fielder Melky Cabrera barely moved as he turned to watch it land in the seats.
Yadier Molina had a run-scoring single in the third. The Cardinals added four runs in the fifth. After Pujols' second homer, Lohse had an RBI single and Brendan Ryan added a two-run triple.
Jason Heyward had doubles in each of his first two at-bats for Atlanta and scored on Martin Prado's single in the third. Alex Gonzalez had three hits, including a single in the sixth to drive in McLouth.
McLouth added a homer in the eighth off Blake Hawksworth.
Barring a playoff matchup, Sunday night's game was the last time La Russa will manage against Atlanta's Bobby Cox, who is retiring after the season.
La Russa is third in career regular-season wins. Cox ranks fourth. The two managed against each other in 161 regular-season games in a rivalry that began in 1982 when Cox was with Toronto and La Russa managed the Chicago White Sox. Cox finished with a 94-67 advantage.
La Russa said Sunday he asked Cox to sign a lineup card and a baseball. The autographed ball sat on La Russa's desk before the game.