Chase Headley went 3-for-3, including a first-inning solo home run, as the Padres completed a sweep of the Giants for the first time since May 2010.
Jason Marquis (2-2) earned the win, allowing two runs on six hits over 6 2/3 innings. The right-hander walked four and struck out three.
Huston Street earned his fifth save.
Giants starter Ryan Vogelsong (1-2) was tagged for six runs (five earned) on eight hits through five frames.