Haren (2-3) didn't quite match Jordan Zimmermann's one-hitter and Gio Gonzalez's impressive eight innings of one-hit ball the previous two games, but he was sharp enough. Haren allowed two runs and six hits over six innings, lowering his ERA from 7.36 to 6.29.
Rafael Soriano pitched a scoreless ninth for his seventh save.
PHILLIES 9, METS 4
Ryan Howard knocked in two runs, Jimmy Rollins scored twice and Michael Young had three hits -- two that never left the infield -- for the second straight day. Pettibone (1-0) pitched his way out of an important jam to help Philadelphia improve to 4-1 against the Mets after losing the season series last year.
Shaun Marcum (0-1) went four innings in his Mets debut after beginning the season on the disabled list with a neck injury and right biceps tendinitis. John Buck hit his eighth homer in the ninth, way too late to prevent New York from dropping to 3-5 on a nine-game homestand with its third straight defeat.
PIRATES 5, CARDINALS 3
ST. LOUIS -- Russell Martin hit a two-run home run to highlight a four-run seventh inning and the Pirates rallied to beat the Cardinals.
The comeback gave A.J. Burnett (2-2) his second victory over St. Louis in 10 days. He gave up two runs and five hits in six innings. His six strikeouts expanded his team record for month of April to a league-leading 48. Burnett threw seven shutout innings in a 5-0 win over St. Louis on April 17.
St. Louis starter Jake Westbrook left after six innings with a 2-0 lead in search of his 100th career victory. He struck out six and scattered six hits to lower his ERA to 0.98 in four starts.
The Pirates had three consecutive hits against Joe Kelly (0-1) to lead off the seventh and were aided by a hit by pitch and a walk to score four runs.
Copyright 2013 by The Associated Press
This story is from ESPN.com's automated news wire. Wire index