Greinke yielded just two hits and two walks, allowing one run while striking out seven.
The former Cy Young Award winner also singled, raising his average to .347, and stole a base -- his second of the season, becoming the first Dodgers pitcher to record two swipes in a season since Orel Hershiser in 1987.
Puig's homer off Dale Thayer (2-5) in the sixth broke a 1-1 tie as the National League West-leading Dodgers completed a three-game sweep and took a fourth straight overall.
Ronald Belisario and Paco Rodriguez combined for a scoreless eighth and Kenley Jansen notched his 24th save for the winners.
Alexi Amarista provided the Padres' only RBI.
Video of Victoria’s Secret models trying to 'twerk' hits Instagram
Exploding whale video goes viral on Internet