Carlos Villaneuva drew the tough assignment of facing 'Doc' Halladay but kept the Phillies in check by allowing two runs over the first five innings.
Roy Halladay held the Jays bats down by pitching three shutout frames.
Jose Bautista emphatically ended Halladay's shutout bid emphatically by belting a home run to lead off the fourth inning. Bautista's 26th dinger of the season tied the game at 1-1.
The Phillies were up 2-1 until the bottom of the fifth when Corey Patterson scored on a John McDonald RBI single.
McDonald would also come home on an Eric Thames single to give the Jays a 3-2 lead.
Lefty Luis Perez relieved Carlos Villaneuva with two outs and a runner on second in the seventh as the Jays clinged to a 3-2 lead.
Chase Utley would take Perez deep for a two-run homer to put the Phillies on top 4-3.
Octavio Dotel came in to bail out Perez in the eighth by getting Carlos Ruiz to ground out with runners on first and second to keep the Jays to within a run.
It was up to Jon Rauch to hold down the fort in the ninth inning.
Rauch tries to go after home plate umpire Alfonso Marquez after surrendering an RBI single to Shane Victorino with two outs in the ninth. Rauch felt he was squeezed by Marquez by not ringing up Ryan Howard on a called strike three. Rauch and manager John Farrell were ejected. Though Shawn Camp got the final out of the inning, Roy Halladay set down the Jays in order in the ninth for a complete game, 5-3 victory.
Next up on POTD, a skidaddle against Seattle.