TJ Brodie, Matthew Tkachuk and Alex Chiasson scored and Chad Johnson made 38 saves for Calgary, who end a two-game winning streak. The Flames have won three of five games during a season-long six-game road trip.
The Flames conclude the trip against the New York Islanders on Monday.
"You lose … you have to find the reasons why you lost the game," Johnson said. "If you lose and you play well that's one thing. I don't think we played the way we wanted to. Obviously we have to get that and recognize what the problems are and get that addressed for tomorrow. A loss is a loss, but we just didn't play well. They just outworked us."
Michael Raffl, Chris VandeVelde and Roman Lyubimov also scored, and Anthony Stolarz made 29 saves in his NHL debut for the Flyers.
After tying the game late in the first period, Philadelphia struck three more times in the second.
Voracek gave the Flyers a 2-1 lead 52 seconds into the period after his centering pass deflected off the stick of Calgary captain Mark Giordano and over Johnson's shoulder.
VandeVelde and Simmonds scored 24 seconds apart to extend the lead to 4-1. Lyubimov cut off Johnson's clearing attempt before firing a shot that VandeVelde tipped by the Flames goaltender at 7:20, and Simmonds scored on a breakaway at 7:44.
"To get out of the first 1-1 … that's the most disappointing part," Giordano said. "We got out of the first and we came out in the second and they just came and scored a bunch of goals in a short period of time. It's a disappointing loss. But we have back-to-back games here. We have to finish this trip off on the right note here. We win tomorrow and it's a 4-2 trip. That's a good trip."
Tkachuk cut the lead at 8:05, but Lyubimov scored on a rebound at 9:55 to put Philadelphia up 5-2.