Halladay (3-0) allowed two runs on seven hits with six strikeouts and also contributed a run-scoring single, as the Phillies opened a 10-game West Coast road trip with their second straight win.
Jonathan Papelbon notched his third save with a scoreless ninth.
Giants starter Tim Lincecum (0-2) yielded five runs in a six-inning start, allowing eight hits, walking one and striking out six. He also drove in a run as the Giants dropped their second straight.
'SNL': 'Anchorman 2' cast, One Direction sing 'Afternoon Delight' [VIDEO]
Exploding whale video goes viral on Internet