Chicago Cubs' David DeJesus, left, walks off the field after striking out as home plate umpire Gerry Davis signals the out during the sixth inning.
Roy Halladay threw eight strong innings for his first victory in a month and the Philadelphia Phillies held on for an 8-7 win over the Chicago Cubs on Thursday night.
Halladay (4-3) hadn't won since April 16, a span of five starts, and had lost three straight decisions to match a career high, but held the Cubs to three runs and scattered seven hits. The two-time Cy Young winner has allowed three earned runs or fewer in eight of his nine starts this season.
Chicago's Welington Castillo's stroked a two-out, three-run double in the ninth against Phillies LHP Jake Diekman to close the gap to two runs. Phillies closer Jonathan Papelbon came on and allowed an RBI single to Darwin Barney, but got Reed Johnson on a grounder to third for his 11th save of the season.
While Halladay ended his modest skid, Cubs starter Chris Volstad (0-6) suffered his 19th straight start without a win. He lasted just two innings, allowing four runs, six hits and three walks. Volstad threw 58 pitches, a total Halladay didn't reach until there was one out in the sixth.
Carlos Ruiz had his sixth career four-hit game and drove in three runs as the Phillies won a season-best fifth straight game. Jimmy Rollins had two hits, a walk and scored three runs. Hunter Pence added a two-run single.
Philadelphia (20-19) moved over .500 for the first time since winning its season opener.
The Cubs may have lost three straight, but Volstad hasn't won since July 10, 2011. He's gone 0-11 during his drought with a 5.40 ERA. His ERA rose to 7.46 for this season and it could have been worse -- the Phillies stranded five runners during his two innings.
In addition to the bases-clearing double, Castillo homered and drove in a career-high four runs.
Volstad's run support has been the lowest in baseball during his skid among pitchers with at least 15 starts, but his results have been increasingly poor in recent outings. He's allowed 15 runs over his last 17 innings, with 19 hits, eight walks and just four strikeouts.
Halladay had lost five of his last six games against Chicago before dominating Thursday's game. He even chipped in with two hits and a run at the plate for his third career multi-hit game.
Ruiz leads NL catchers with 27 RBIs and is 9 for 14 over his last four games. He even stole his first base of the season on the back end of a double steal in the first.
Starlin Castro hit solo homers and drove in two runs for Chicago. David DeJesus had two hits and a run, extending his hitting streak to nine games.