The Braves have won two straight and 17 of 19 to lead the majors with a .612 winning percentage.
Philadelphia, which has lost seven of eight series since All-Star break, has dropped 19 of 23. The Phillies have lost 14 of 15 on the road.
Rain delayed the start of the game 1 hour, 48 minutes.
Beachy (2-0) held the Phillies scoreless until Dominic Brown's 27th homer cut the lead to 5-2 with one out in the sixth.
John Lannan (3-6) lasted only 1 1-3 innings before leaving with a left knee injury.
Beachy, making his fourth start since returning from elbow ligament replacement surgery, allowed five hits, two runs and no walks. The right-hander struck out four, beating Philadelphia for the first time in nine career starts.
Craig Kimbrel converted his 28th consecutive save opportunity and 38th in 41 chances, striking out John Mayberry Jr., retiring Carlos Ruiz on a flyout and pinch-hitter Kevin Frandsen on a groundout.
Kimbrel entered the game with none out in the ninth after David Carpenter allowed a leadoff homer to Darin Ruf and walked Cody Asche.
The Braves went up 2-0 in the first on Heyward's leadoff homer and Johnson's sacrifice fly.
Lannan escaped further damage with runners on first and third when B.J. Upton took a called third strike, but his troubles continued in the second with a one-out walk to Beachy.
Heyward doubled on a liner off third baseman Asche that advanced Beachy to third, and after Justin Upton walked on five pitches, Lannan's night was over.
Atlanta took a 5-0 lead after the next Philadelphia pitcher, Zack Miner, gave up Freddie Freeman's sacrifice fly and Johnson's two-run single.
Lannan gave up four hits and five runs with three walks and one strikeout. Coming off a 9-2 loss last Friday at Washington in which he allowed a career high-tying eight earned runs, he is 1-5 with a 10.50 ERA in his last six road starts.
Philadelphia, which stranded runners in scoring position three times in the first four innings, has been outscored 85-30 over its last 15 road games.
Beachy, who left for a pinch hitter in the sixth, improved to 1-3 and lowered his ERA to 3.67 in nine career starts against Philadelphia.
Luis Ayala and Luis Avilan combined to allow one hit with one strikeout in the seventh and eighth for Atlanta before Ruf's seventh homer made it 6-3.
Heyward's 11th homer gave him 12 RBIs since moving to the leadoff spot on July 27 — a span of 18 games in which he's hit .382 and scored 20 runs.