Kyle McClellan (1-0) allowed a hit in the eighth and Ryan Franklin worked around a two-out walk to pinch hitter Milton Bradley in the ninth for his fifth save in five chances as St. Louis won its eighth in a row at home. The opener of a three-game series against their NL Central rival attracted a sellout crowd of 45,812, only the second of the season.
The Cubs' Alfonso Soriano batted third for the first time since May 2007 and extended his hitting streak to 11 games with a double to start the eighth.
Cubs manager Lou Piniella's lineup shakeup following a pair of games in which the Cubs totaled one run wasn't a huge success, although Mike Fontenot and Reed Johnson each drove in a run during a three-run seventh that tied the score.
Pujols grounded a single up the middle with one out in the eighth off Carlos Marmol (0-1), only his fourth hit in 16 at-bats against the right-hander. Although he's not noted for his speed, Pujols stole his third base in three attempts on a 1-0 count, then scored without a play when Ryan Ludwick grounded a single just under the glove of diving shortstop Ryan Theriot.
Marmol left with an apparent leg injury after hitting Brian Barden, his third hit batsman in 8 1-3 innings this season, to put runners on first and second, but Angel Guzman got Yadier Molina on a double-play ball.
Marmol was the second Cubs player to leave following third baseman Aramis Ramirez, who strained his left calf muscle running on a double in the second and left before the bottom of the fifth.
The first five Cubs reached in the seventh against Adam Wainwright, with left fielder Skip Schumaker's dropped pop fly leading to two unearned runs. Johnson's blooper to shallow center landed just out of the reach of second baseman Joe Thurston's diving attempt for an RBI single and Schumaker, who moved from second in a series of defensive moves to start the inning, dropped Micah Hoffpauir's routine pop fly with the bases loaded to allow a second run.