Greinke also stole a base in the game that gave him two stolen bases on the season. He became the first Dodger pitcher to do that since Orel Hershiser.
Greinke (14-3) gave up two hits, struck out seven and walked two in the victory.
"It's been good the last nine, 10 starts. Location's been as good as it's been for a long stretch," Greinke said about his performance.
The Dodgers tied the score 1-1 on a Mark Ellis RBI single to left that scored Carl Crawford in the third inning.
Puig stepped up big time in the sixth inning, when he crushed a solo home run deep to center off of Dale Thayer for the 2-1 lead.
Puig's 14th home run on the season in just 79 games played in the major leagues.
"Of course I felt good I hit a home run on Cuban Heritage Day," Puig said.
Kenley Jansen struck out two in the ninth and captured his 24th save with 100 career strike outs.
"Jansen wants to be that guy. We're seeing a guy who is more and more confident," said manager Don Mattingly.
Padres starter Tyson Ross was sensational as he struck out ten, gave up one run in five inning of work.
"I wish I could have pitched deeper into the game, but they were making me work and having some patient at-bats," Ross said. "I was just trying to execute in a couple of tough situations."
Reliever Dale Thayer (2-5) gave up one hit and one run in 1 2/3 innings in the loss.
Infielder Michael Young acquired from the Philadelphia Phillies in a trade over the weekend, will join the Dodgers in Colorado on Monday against the Rockies.