Smoltz struck out six and allowed a run in six innings in his home debut, while Pujols put three poor at-bats behind him and hit his 41st homer leading off the bottom of the ninth for a 3-2 victory over the Washington Nationals on Friday night.
"I could have had a better day, and I ended up chasing a couple of bad pitches," said Pujols, who hit two comebackers. "At the end of the night I came through for the ballclub."
Pujols hit a 1-1 pitch from Jason Bergmann (2-4) well over the left field wall for his eighth career walkoff homer and first since July 13, 2006. He reached 100 runs for the eighth time in his nine seasons.
The NL Central leaders have won 16 of 20 despite recent offensive struggles, leaning on a rotation bolstered by the 42-year-old Smoltz, who has a 0.82 ERA after two starts with the Cardinals.
"He knew he could still pitch when he got released by Boston," Pujols said. "Obviously, he's just been unbelievable."
Khalil Greene's first career pinch-hit homer tied it at 2 in the eighth against Nationals starter John Lannan, who allowed two runs and four hits in eight innings to rebound from the worst start of his career. He lasted 1 2/3 innings and gave up seven runs in an 11-9 loss at home to Milwaukee.
Bergmann has allowed seven runs in 2 1/3 innings in his last five appearances.
"Don't do what I did," Bergmann said. "I threw him a pitch in the middle of the plate, a bad pitch."
Greene's sixth homer came in his first at-bat since Aug. 20. It was his first long ball since he connected in three straight games at Kansas City from June 19-21 -- even though he's not at all fond of pinch-hitting.
"In my experience, coming off the bench and being productive is about as hard as it gets," Greene said. "To see the fruits of your labor, I guess, is nice."
The Cardinals won despite going 1 for 5 with runners in scoring position for a two-day total of 2 for 15. The comeback allowed them to avoid consecutive losses for the first time since July 25-26.
Smoltz, released by the Red Sox earlier this month after going 2-5 with an 8.33 ERA, was an instant hit before his first home start with the Cardinals. He drew a nice ovation as he crossed the field heading toward the dugout, then most in a crowd of 40,033 gave him a standing ovation before his first at-bat leading off the third.
Smoltz said he wasn't as sharp as in his first start on Sunday. The right-hander had nine strikeouts in five scoreless innings at San Diego, including seven in a row.
"The crowd was awesome, I've known that for quite some time being a visitor, and it's nice to feel that as a home player," Smoltz said. "They understand baseball and they understand what I'm going through and they provided adrenaline for me."
Smoltz struggled only in the third inning, allowing two hits and a sacrifice fly by Pete Orr. He retired the last seven hitters with only one ball out of the infield.
The Cardinals loaded the bases with no outs in the second but settled for one run on Yadier Molina's double-play ball.
Cardinals 2B Julio Lugo played in shallow right field in an exaggerated infield shift for Adam Dunn's at-bats and threw him out twice. ... Dunn struck out twice against Smoltz and is 2 for 16 with a homer against him. ... The only season Pujols didn't score 100 runs was 2007, when he ended up with 99. ... Lannan kept the ball down against the Cardinals, with only five fly outs. "That was more like what we saw earlier in the year," manager Jim Riggleman said.