ST. LOUIS (AP) -- The Atlanta Braves have no intentions of giving up this season.
"Hopefully, the fans can sit back and watch us today because we're busting our butts," Jeff Francoeur said. "We're going to play hard."
Albert Pujols homered and drove in three runs for the Cardinals, who began the day 2 1/2 games behind Milwaukee, the NL wild-card leader.
Mike Gonzalez got four outs for his sixth save, securing Atlanta's second victory in 13 games. It came after Friday's 18-3 drubbing -- the first time in five years that the Braves gave up as many as 18 runs.
"You're not going to see everything fall like you did [Friday]," Cardinals manager Tony La Russa said. "We had a lot of chances. At the end of the game we had a lapse. It would have been nice to go one run down to see if we could have rallied."
Rain delayed this one for 49 minutes in the top of the ninth. When play resumed, Atlanta scored three times with two outs, sparked by Kelly Johnson's dogged at-bat.
Johnson saw 14 pitches from reliever Russ Springer, fouling off eight consecutive 3-2 deliveries before drawing a bases-loaded walk. Francoeur then singled up the middle to drive in the final two runs, making it 8-4.
That all came after Martin Prado turned what could have been a simple groundout to second into an infield single by hustling.
"They have been doing that," Braves manager Bobby Cox said, adding that Prado is playing with a groin injury. "They don't get credit for it because we're losing, but I've always been proud of them. We've gone through hell here the last couple of weeks. They haven't lost their concentration or their desire to win."
Cardinals second baseman Felipe Lopez said he wasn't sure if Prado was safe, but the play developed slowly because he had to wait for Pujols to cover first. Lopez double pumped before tossing to Pujols.
"He was playing deep and I kind of had to wait a little bit to throw the ball," Lopez said. "Obviously, I don't want to hit him in the back while he's running to the bag."
Kyle McClellan (2-6) walked Johnson in the eighth and a wild pitch put runners at second and third. Norton's two-run single, just under Lopez's glove, on a two-strike pitch gave the Braves a 5-3 lead.
Lopez hit an RBI double in the bottom half to cut it to 5-4.
Cardinals starter Kyle Lohse allowed three runs and eight hits in six innings. Prado's two-run single off Lohse tied the score at 3 in the sixth.
Pujols hit a two-run double in the third and added a solo homer in the fifth to give St. Louis a 3-1 lead.
The home run was Pujols' seventh hit in seven consecutive at-bats over a three-game span. He walked once Friday in four plate appearances.
Left fielder Gregor Blanco ended the streak with a diving catch to end the seventh.
Norton is 11-for-35 (.314) as a pinch hitter this season with 10 RBIs. ... Braves 3B Chipper Jones had two hits and is batting a major league-high .361. He has hit safely in 12 of his past 14 games since returning from the disabled list. ... Pujols ranks second in the NL with a .356 average. ... The Cardinals fell to 62-14 when getting at least 10 hits.