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.
Ray Liotta sues skin care company over use of likeness
Boston schools pull out free condoms over wrapping complaints