Ryan Ludwick hit a two-run homer in the sixth to give the Padres a three-run lead and they went on to maintain a 1 1/2-game lead over second-place San Francisco in the National League West.
Garland (11-8) struck out five and walked four before giving way to the bullpen. The only Pittsburgh hit off Garland was a one-out double by Ryan Doumit in the fourth.
Luke Gregerson, Joe Thatcher and Heath Bell completed the shutout. Bell gave up a hit and struck out two in the ninth for his 34th save.
Pittsburgh dropped its fourth straight game and reached 75 losses for the season. Zach Duke (5-11) suffered the setback, allowing all three runs on six hits in six innings.