Zach Duke outdueled Roy Halladay with six strong innings, and the Pirates bullpen held on for a 2-1 win over the Phillies on Tuesday night.
A night after the Pirates gave up 12 runs to the National League's most potent offense, Duke (3-4) limited Philadelphia to one run in six innings. Evan Meek, Joel Hanrahan and Octavio Dotel retired nine of the final 10 batters. Dotel recorded his eighth save in 10 chances.
"It's a challenge," said Duke, who ended Philadelphia's four-game winning streak. "It makes you focus that much more and take every precaution. The margin for errors is very small."
Almost miniscule against Halladay (6-2), who leads the major leagues in innings pitched. He gave up nine hits in his fourth complete game of the season. He walked one and struck out six.
The Phillies entered the game with the NL's best record (24-13) and had won 10 of their past 12, but struggled to solve Duke, who won for the first time since April 10. Despite a 5.56 ERA, the lefty kept Philadelphia guessing.
"We never really had any momentum," Shane Victorino said. "He pitched well."
Pittsburgh scored in the second on back-to-back, two-out doubles by Ryan Doumit and Andy LaRoche, who entered the game in a 3-for-34 slump.
Philadelphia answered in the fifth, when Juan Castro's bases-loaded single scored Ryan Howard, but Andrew McCutchen kept the game tied when he threw out Jayson Werth at the plate. Halladay then struck out to end the inning.
"I thought [Werth] took a wide turn at third and kind of lost his timing," manager Charlie Manuel said. "At the same time, he made a good throw and the ball beat him there."
The Pirates took the lead for good in the sixth on a single to right by Garrett Jones. Lastings Milledge, who had singled, scored when Werth throw bounced away from catcher Carlos Ruiz.
"The run in the sixth was more about placement," said Halladay, the 2003 American League Cy Young Award winner. "Jones hit the ball on the ground and it found a hole. You never know when that extra run in going to cost you."
Pittsburgh snapped a six-game losing streak in Philadelphia that dated to Aug. 8, 2008.
Duke escaped a bases-loaded jam in the sixth by getting Ben Francisco to bounce to third, and Meek, Hanrahan and Dotel did the rest.
Halladay logged 132 pitches, the most in the majors this season and the second-highest pitch count of his career. After walking pinch-hitter Jeff Clement with two outs, he talked Manuel into letting him finish the game, then ended his night by striking out Delwyn Young with a 3-2 curveball.
"I wanted to leave him out there because I knew he had more," Manuel said. "I wanted to give him a chance to win the game."
His teammates applauded the effort.
"He threw an absolute gem," Victorino said. "It makes it even more frustrating that we couldn't score."
In escaping with the win, the Pirates (17-22) head home after a 3-2 road trip, their first winning experience away from PNC Park since Aug. 2007. Beating Halladay is the perfect way to return.
"It was a good win for our team and a morale booster," Duke said.
Halladay has allowed two earned runs or less in eight of his nine starts this season. ... Phillies second baseman Chase Utley missed his second straight game with flu-like symptoms. ... Pirates setup man Brendon Donnelly (strained left oblique) threw a bullpen session on Tuesday and said he felt fine. He is expected to be activated in the next few days. ... The crowd of 45,007 was the 60th consecutive sellout at Citizens Bank Park.