Pujols smacked his 23rd homer in his team's 46th game, a pace of 81, as the Cardinals beat the Giants 8-5 on Tuesday night. Bonds hit no homers and still is at 714.
Starting pitcher Jason Marquis, after a rocky start in which he allowed two runs in the first inning, recorded the Cardinals' longest start of the season, lasting 8 1/3 innings before Jason Isringhausen posted his ninth straight save and 15th overall.
Marquis got 14 ground-ball outs from the third through the ninth innings as he gained his third straight victory.
He has been nothing if not streaky this season, winning three, losing four and then winning three.
"I attacked right from the start," said Marquis, who is the staff leader in wins at six.
Isringhausen, who didn't get a couple of close calls from umpire Bill Miller, wasn't exactly air-tight, walking the first two hitters he faced, but then he retired the next two.
REPLAY: San Francisco's Matt Morris, facing his former teammates for the first time, started slowly, and Albert Pujols made him pay. Morris allowed hits to David Eckstein and Scott Spiezio to start the game, and then Pujols unloaded a three-run homer to left for a lead the Cardinals never relinquished, as they went on to win, 8-5.
The Cardinals also took advantage of Juan Encarnacion's run-scoring double over the head of San Francisco's Barry Bonds in the third, and Encarnacion's two-run single under the glove of Giants shortstop Omar Vizquel in the fifth after Giants first baseman Jose Vizcaino had committed a two-out error, his first of two on the night.
--LF Scott Spiezio extended his hitting streak to six games with a first-inning single. Manager Tony La Russa is trying to get the valuable utility-man in the lineup almost every day because of Spiezio's hot bat. Spiezio also scored three runs.
--RHP Sidney Ponson officially has been named to start Saturday in San Diego. Ponson, who has had elbow problems, will remain on the disabled list until that day.
--SS David Eckstein had his 19th multi-hit game of the season, singling twice. Eckstein, who also has a six-game hitting streak, has 58 hits for the season.
--3B Scott Rolen had three hits to extend his hitting streak to seven games. He has had multi-hit games in three of his last four starts.