Carl Crawford made it 2-0 with a home run, his fourth of the season, to right-center field in the second inning.
Kershaw didn't allow a hit in the first three innings.
After a 43-minute rain delay in the top of the fourth, both starting pitchers returned. And it didn't take the Phillies long to break up Kershaw's no-hitter.
After Carlos Ruiz walked to open the fourth, Chase Utley got the Phillies' first hit on a double to left field, putting runners on second and third.
Kershaw proceeded to strike out Marlon Byrd, Ryan Howard, and Darin Ruf.
In the fifth inning Puig reached base on a single, but the ball appeared to have hit off his foot. The Phillies started jawing at the umpires and first-base coach Juan Samuel was eventually ejected in the fifth for arguing balls and strikes.
Jimmy Rollins led off the sixth with a double, but after Ruiz walked, Kershaw got Utley on a fly out to right, Marlon Byrd on a foul pop-up to first, and then Howard on a called third strike.
The evening then was over for Kershaw, who threw 100 pitches during his six shutout innings. He allowed just two hits, despite getting in several jams, while striking out nine.
"I really saw their pitchers step up," Phillies manager Ryne Sandberg said. "Kershaw, we missed some fastballs in those spots and he had a real good slider for an out pitch."
It was a drastically different Kershaw than in his previous outing, when he lasted just 12/3 innings and allowed seven earned runs in an 18-7 loss at Arizona.
Gordon led off the seventh with a walk and stole second, advanced to third on Chone Figgins' fly out to right. Puig was intentionally walked.
Hernandez was then replaced by Mario Hollands, who got Adrian Gonzalez to hit into an inning-ending double play.
This was Hernandez's first start since May 9, although he has made two relief appearances since.
"Today I felt great and it didn't bother me," he said about not starting in two weeks.
Ben Revere greeted reliever Brandon League with a pinch-hit single to open the seventh and Cesar Hernandez walked. League then made an errant throw to first on pinch-hitter Tony Gwynn Jr.'s sacrifice bunt to load the bases.
Pinch-hitter Domonic Brown hit a liner to left against J.P. Howell and Crawford made a sliding catch. Revere was halfway down the third base line. Had he been on the bag he would have been able to tag up and score.
"It was like a line drive so I kind of froze and saw it in the air, and that is when I was going on contact anyway," Revere said about being so far off the bag.
The mistake was magnified when Rollins hit into a fielder's choice, with third baseman Figgins getting the second out at home. Ruiz then flew out to right and the Phillies had wasted another chance.