PHILADELPHIA — Matt Carpenter hit a sacrifice fly in the 12th inning, lifting the St. Louis Cardinals over the Philadelphia Phillies 6-5 on Saturday night.
Jhonny Peralta homered for the Cardinals, who have won eight of 10 and closed within a half-game of National League Central-leading Milwaukee.
Ryan Howard homered and Marlon Byrd and Carlos Ruiz each drove in a pair of runs for the Phillies.
Pinch-hitter Daniel Descalso drew a leadoff walk in the 12th from Ken Giles (2-1). Descalso went to second on Jon Jay's sacrifice bunt and moved to third on Peter Bourjos' infield single. Carpenter then flied out to deep left.
Seth Maness (5-2) pitched two scoreless innings and Trevor Rosenthal earned his 38th save in 43 chances.
The teams combined to use 14 pitchers in a game that took 4 hours, 53 minutes.
The Phillies tied it at 5 in the eighth on Byrd's two-run single off Pat Neshek, who relieved Randy Choate after the bases were loaded with no outs.
Cardinals starter Shelby Miller was in line for the win after going six innings and allowing three runs and five hits.
A pair of Phillies errors helped the Cardinals break a 2-all tie and go in front in the sixth with three runs off reliever Mario Hollands.
After A.J. Pierzynski led off with a double, Oscar Taveras hit a sinking liner to left. Domonic Brown appeared to pull up on a catchable ball and Pierzynski took off for third when Brown hesitated to throw back to the infield. Brown then threw the ball away, allowing Pierzynski to score.
David Buchanan got his first no-decision in his 14th start, giving up two runs and eight hits in five innings. The right-hander is filling in for Cliff Lee, who is out for the season with an elbow injury.