PITTSBURGH -- Chris Carpenter is almost always good for a victory against the Pittsburgh Pirates. Even on a night when a pitcher who hasn't lost since June looked ready to be beaten.
Ryan Ludwick's sacrifice fly in the eighth inning scored the go-ahead run and the St. Louis Cardinals withstood a shaky beginning by Carpenter to beat Pittsburgh 6-4 on Friday night, stretching the Pirates' losing streak to six games.
Carpenter (11-3) fell behind 4-2 in the third -- as many runs as he allowed in his previous four starts combined -- but settled down to give up only two singles and no runs over the next five innings before Ryan Franklin finished. Carpenter is 6-0 in his last seven starts.
The key point for Carpenter came after play was stopped for about 10 minutes in the seventh inning when a man tumbled onto the field from a front-row box seat while reaching for a foul ball and cut his forehead. The Pirates had runners on first and third, but Carpenter came back after the delay to get Garrett Jones and Ryan Doumit on foul pop-ups. Both had homered against him in the first.
"I knew if I kept my team in the game in that seventh, we had a shot at putting some runs on the board and we were able to do it," said Carpenter, who is 11-1 in 13 career starts against Pittsburgh. "We continue to go the whole game. I never felt we were out of the game."
Matt Holliday hit a two-run home run and relied on his speed to score the lead run as the Cardinals won for the seventh time in 10 games. Albert Pujols, 9 for 13 in his last three games, and Mark DeRosa each had three hits, with DeRosa hitting his eighth homer in 16 games. Pinch-hitter Khalil Greene added a game-tying RBI double in the seventh.
The Pirates have been outscored 27-4 from the seventh inning on while going 2-6 on a 10-game homestand that followed the flurry of trades a week ago in which they shed second baseman Freddy Sanchez, shortstop Jack Wilson and pitchers John Grabow, Ian Snell and Tom Gorzelanny. Only two position players who started on opening day were in their lineup.
With the score tied at 4, Holliday beat out a grounder to third in the eighth off Jose Ascanio (0-2), the former Cubs reliever who was called up from Triple-A earlier in the day. Holliday stole second and advanced to third as second baseman Delwyn Young misplayed the throw. Ludwick followed with his sacrifice fly on an 0-2 pitch and Colby Rasmus added another sacrifice fly in the ninth.
"He's a complete player," Cardinals manager Tony La Russa said of Holliday. "He gets an infield single, he steals second, there's an error on the throw and a short sacrifice fly. Not many guys who hit with his production give you that other dimension."
Holliday's home run off a second-deck left field walkway followed Pujols' single in the first, and the Cardinals might have thought that 2-0 lead was enough. Carpenter is unbeaten since June 30 and had an 0.73 ERA in previous five starts against Pittsburgh.
But the Pirates tied it on the homers by Jones and Doumit, only the third time this season Pittsburgh has hit back-to-back homers. Carpenter hadn't given up more than one run in an inning since yielding three to the Cubs in the third on July 10.
The Pirates, who have beaten five former Cy Young Award or 20-game winners this season despite their 45-64 record, came back to take a 4-2 lead in the third on doubles by Doumit and Delwyn Young and Steve Pearce's RBI single.
"He gave them something to hit and they didn't miss them," La Russa said of Carpenter. "But as he went into it, he made better and better pitches and I don't care how good you're hitting, it's tough to center them."
Pirates starter Paul Maholm, winless in his last five starts, was upset he couldn't hold the 4-2 lead.
"We have to go out there ... and win," Maholm said. "We've lost six in a row; we should've won five of them."
Carpenter gave up nine hits in eight innings, the fourth consecutive start in which he has given up eight or more.
Franklin got his 25th save in 27 opportunities. ... Cardinals SS Brendan Ryan started for the first time since fouling a ball off his left ankle July 30. ... Jones' homer was his second in three nights, and 12th of the season, after he had gone from July 24 until Wednesday without homering.