Matt Kemp went deep for the Braves, who have lost six in a row after winning five straight.
Pinch-hitter Michael Saunders lined a double to right leading off the bottom of the eighth off reliever Arodys Vizcaino (1-1). Hernandez followed with a drive to right for his fourth homer and a 3-1 lead. Altherr hit Vizcaino's next pitch into Philadelphia's bullpen in right-center. Lefty Ian Krol entered and Herrera connected on a 3-2 pitch the opposite-way to left-center to make it 5-1.
It was the eighth time in franchise history the Phillies hit three straight homers and first since June 13, 2008 when Chase Utley, Ryan Howard and Pat Burrell went back-to-back-to-back at St. Louis.
Eflin gave up one run and three hits in seven sharp innings in his second start since replacing injured righty Clay Buchholz.
Joey Rodriguez (1-0) got two outs in the eighth to earn the win and Hector Neris finished with a shaky ninth. Neris allowed one run and left the bases loaded.