Pujols hit a tying drive in the eighth inning for his first homer since returning the disabled list and rookie pinch-hitter Tony Cruz hit a game-ending RBI double in the ninth, capping the Cardinals' comeback from a four-run deficit in a 7-6 victory over the Arizona Diamondbacks on Saturday night.
"I'm right where I want to be and it feels good to help the ballclub win," Pujols said. "I was just part of that group and it feels good to be part of that group.
"That's how you need to win some games, getting a lot of help from the bench and guys coming through big-time."
It was the Cardinals' biggest comeback since they came from four runs down to beat the Dodgers 5-4 on July 18, 2010, and pulled them into a first-place tie with Milwaukee in the NL Central. Cruz got his first career game-winning hit.
"You can only get through Pujols, (Matt) Holliday and (Lance) Berkman so many times," Diamondbacks manager Kirk Gibson said.
Pujols' 18th homer, and first in five games back from a broken left wrist, was a two-run shot off Yhency Brazoban that tied it at 6. Pujols was 3 for 4 with a walk and three RBIs, a breakout game after going 1 for 12 his first four games back.
Pujols has 1,982 hits, passing Red Schoendienst for fifth on the franchise's career list with a single in the seventh. The homer was his 30th in the eighth inning or later to tie or put the Cardinals ahead, the most in the majors during his 11-year career, according to the Society of American Baseball Research.
"We tried to go fastball in, it was kind of middle down, and it's Pujols, man," Arizona catcher Miguel Montero said. "He crushed that ball."
Cruz's first hit in six pinch-hit at-bats came off Joe Paterson (0-3), who gave up two hits and a walk.
"That's what you grow up watching, people hitting walk-offs," Cruz said. "You dream of that as a little kid."
The Cardinals had dropped three of four since Pujols returned. They had a season-best 15 hits and won despite stranding 12 runners.
"We just kept playing," manager Tony La Russa said. "We just stayed after it."
Diamondbacks starter Daniel Hudson had two hits and two RBIs, and leads pitchers with 12 hits and nine RBIs while batting .333. But Hudson faded on the mound and failed to retire any of the three batters he faced in the sixth.
"I felt OK, didn't feel great obviously," Hudson said. "Give credit to their guys. Every guy it felt like I had two strikes and they fouled off maybe four pitches, and it drove my pitch count up a lot."
Arizona committed two errors in the eighth, one of them allowing a run after center fielder Eric Young fumbled the ball after catching a flyout.
Cardinals starter Chris Carpenter gave up four earned runs in six innings after entering the game on a roll. The right-hander won his previous three starts while allowing two runs in 24 innings.
"It was a battle, no question," Carpenter said. "They hit some good pitches, they hit some bad pitches. They got some balls to drop in."
Hudson had a two-run single in a three-run second, Young had an RBI double in the third and Kelly Johnson's RBI double made it 5-1 in the sixth.
Ninth-place hitter Skip Schumaker had three hits, including RBI singles his last two trips, for St. Louis.
Carpenter needs one strikeout to tie Jesse Haines (979) for fifth on the franchise's career list. ... The Diamondbacks entered with an NL-leading 292 extra-base hits and had three doubles. ... Hudson has worked only nine innings combined in his last two starts. ... Ryan Roberts is 5 for 10 as a pinch hitter for Arizona and drove in his first run in that role in the seventh to make it 6-3.