ST. LOUIS -- MVP slugger, Gold Glove defender, Roberto Clemente Award winner ... and now a demon on the basepaths.

Albert Pujols singled and stole second base, then scored the winning run on Ryan Ludwick's RBI single, sending the Cardinals to a gripping 4-3 win over the Cubs at Busch Stadium on Friday night. Pujols has stolen a base in three straight games, the longest streak of his career.

Long known as an aggressive baserunner, Pujols hasn't stolen more than seven bases in a season since he racked up 16 in 2005. But he's been running lately, and on Friday, it paid off in a big way. His run against Cubs setup man Carlos Marmol made the difference in a big win for the home team. St. Louis has won eight straight games at Busch Stadium.

"I tell you what, it didn't catch me off-guard," Ludwick said. "At all. He's just a smart player, a real smart player. Good baserunner. He does everything on the baseball field above-average."

An inning earlier, Chicago had turned a three-run St. Louis lead into a tie score. For the eighth, the Cubs called on Marmol, who had kept Pujols and Ludwick quiet in previous meetings, and it looked like the old rivals might be headed for extra innings.

But after Rick Ankiel flied out, Pujols got his bat on a tough fastball down in the zone from Marmol and singled to center. Knowing that even for Ludwick, an extra-base hit might be a tall order, Pujols took off on a 1-0 pitch from Marmol. He beat the throw from catcher Geovany Soto and was in scoring position. On the next pitch, Ludwick reached down for a slider and poked it up the middle, just out of the reach of shortstop Ryan Theriot.

Pujols motored around to score, and the Cardinals led by what would be the final score.

"[Marmol] is the best setup man in the game right now and a future closer, pretty soon," Pujols said. "When you see a guy like that, that has really good success against everybody in the league, it's pretty tough to get three base hits in a row. You try to make anything happen, however you can. I started it, and then Ludwick got a big hit for us."

Asked whether Pujols' decision was the right one, manager Tony La Russa didn't hesitate.

"That's a great play," La Russa said. "You've got Marmol out there, who's tough to score on. You make something happen. If they throw him out, so what? Standing around waiting to get three hits [probably won't work]."

The rally made a winner of reliever Kyle McClellan, as the Cards' bullpen worked two fine innings. McClellan allowed a leadoff double but escaped without permitting a run in the eighth. Ryan Franklin walked one, but navigated the ninth for his fifth save in as many tries.

Starter Adam Wainwright took a hard-luck no-decision, betrayed by his defense despite seven exceptional innings. He entered the seventh with a three-run lead, but allowed a single and an RBI double to the first two hitters of the inning. He walked Soto, then induced a bloop from Reed Johnson. But Johnson's ball dropped between second baseman Joe Thurston and the outfield, loading the bases.

The next batter, pinch-hitter Micah Hoffpauir, hit a fly ball to left field that bounced off the heel of Skip Schumaker's glove in left field. Instead of the first out, the ball delivered the second run. Thus, when Ryan Theriot hit into a double play, the tying run crossed the plate. Wainwright minimized what could have been an even worse outing, but he was still frustrated.

Even so, it was an encouraging return to form for Wainwright, who had not pitched more than six innings in a start this year and had walked 12 batters in three appearances.

"That's more like it," the right-hander said. "They have a quality lineup on the other side, and I made my pitches most of the night and got them out. When you're working ahead in the count and getting strike one on everybody, then they have to be aggressive because they don't want to go 0-2. They have to swing the bat, so they swing at your pitches."

The Cardinals improved to 12-5, best in the National League Central and equaling their best start under La Russa.