PHILADELPHIA (AP) -- It had been a long time since Chase Utley circled the bases at Citizens Bank Park. Too long.
Utley snapped a 3-3 tie with his 29th home run, a two-run shot to right off Pittsburgh's Tyler Yates in the seventh. The Phillies moved two games ahead of the New York Mets in the National League East.
Utley was 0-for-12 before the home run, after previous slumps of 0-for-24 and 0-for-17 since hitting .362 with 13 homers over the first 33 games. He went 1-for-3 to raise his average to .287, but still hasn't had a multi-hit game since July 30.
"When you don't get results, obviously it's frustrating," Utley said. "I feel like we have a very good lineup from top to bottom and it's a complete team effort."
Phillies manager Charlie Manuel won't ever fret about his All-Star second baseman.
"I ain't worried about Chase's hitting," Manuel said. "Not at all. He's fine. His hitting is going to come around."
Greg Dobbs added his major league-leading 21st pinch hit with an RBI double, setting a new club record. Dobbs is 21-for-51 as a pinch-hitter this season. His double tied the game before Utley homered.
"It's an honor to set a franchise record," said Dobbs, who had shared the mark with Doc Miller from 1913. "To do it in a situation when we needed a hit and a run is just icing on the cake."
Recently-acquired left-hander Scott Eyre (3-0) picked up the win for Philadelphia by throwing four pitches in 1/3 of an inning. Ryan Madson pitched a scoreless ninth for his first save in two opportunities.
Yates (4-3) took the loss for the Pirates by giving up three earned runs in one inning. Yates' wife gave birth to a daughter on July 31 and he has only made two appearances since that point.
"We need to get him in games," Pittsburgh manager John Russell said. "We've got to get him going."
Jason Davis, the 12th different starter for the Pirates this season, worked out of several jams and allowed only four hits and two runs -- both unearned -- in six innings after the game was delayed by rain for one hour, 47 minutes at the outset.
The 28-year-old Davis, who walked four and struck out three, last started a game on July 4, 2005, for the Cleveland Indians. He was 14-19 with a 4.93 ERA in 52 career starts before this game.
"He threw the ball well," Russell said. "I thought he kept the ball down, changed speeds well. It was encouraging to see."
After Doug Mientkiewicz's double in the second gave Pittsburgh a 1-0 lead, the Phillies went ahead in the third in a bizarre sequence of events. After Carlos Ruiz walked to lead off the inning, Jamie Moyer put down a sacrifice bunt in front of home plate. Davis made an errant throw wide of first base, allowing Moyer to advance to second.
Moyer knocked down first base umpire Randy Marsh on his way to second and then advanced to third on another throwing error by Michaels from right field. A sacrifice fly to center by Jimmy Rollins scored Moyer.
"I was looking for the oxygen tank at third base," Moyer joked.
The Pirates took a 3-2 lead with two outs in the sixth on a two-run double by Jason Michaels off 45-year-old Moyer, who gave up seven hits and three earned runs in six innings.
Phillies closer Brad Lidge was unavailable because of stiffness in his right shoulder. Philadelphia's Ryan Howard played in his 232nd consecutive game, the longest streak in the major leagues. Sunday's game was the 5,000th for Pirates broadcaster Lanny Frattare over a 33-year span. A crowd of 45,262 attended the game, the 40th sellout of the season at Citizens Bank Park.