Roy Halladay pitched seven strong innings as the Phillies avoided being swept by Pittsburgh. Chase Utley had three hits and Ryan Howard knocked in three runs as the Phillies beat the Pirates, 7-3.

Despite leaving 12 runners in scoring position, the Phillies were able to overcome an early 2-0 deficit after Neil Walker hit a two-run home run in the bottom of the first. Walker's home run followed a pitch that home plate umpire Angel Hernandez called a ball when Halladay clearly thought it was a strike.

Halladay had to be pulled back to the dugout after the inning by Placido Polanco and Charlie Manuel.

That wasn't the only umpire trouble for the Phillies. In the top of the fourth inning, Domonic Brown hit a sharp grounder up the middle that would have easily scored Ryan Howard from second with two outs. However, the ball hit second base umpire Chad Fairchild in the leg and was immediately called a dead ball, forcing Howard to stop at third.

The Phillies were able to rally and score two runs in the fifth to take a lead, despite not getting a hit in the inning. They added another in the sixth, and another in the eighth.

The Pirates rallied in the eighth, scoring a run off Jose Contreras, the first earned run he surrendered all season. Antonio Bastardo was able to preserve the Phillies' 5-3 lead.

After the Phillies tacked on two more insurance runs in ninth, Ryan Madson came in finish off the Pirates.