Darroll Powe and Mike Richards scored for Philadelphia.
Elliott made 13 saves in the second period, stopping Mike Knuble's deflection and Claude Giroux's breakaway and making a brilliant glove save on Joffrey Lupul.
It was Elliott's third straight impressive performance. He beat Buffalo 3-2 and 3-1 in his previous two starts, stopping the Sabres on 11 of 12 power plays Wednesday night in Buffalo. The Flyers failed on three power plays.
Heatley was credited with Ottawa's first goal after his shot hit the right post, then bounced off goalie Antero Niittymaki and Flyers winger Scott Hartnell into the net with 1:38 left in the first period. It was his team-leading 23rd goal.
Spezza made it 2-0 with his 21st goal on a power play at 8:40 of the second. He deflected Brenden Bell's shot with his skate while standing to the left of the net.
Foligno scored with 14 seconds left in the period, taking a pass from Ryan Shannon and ripping a backhander past Niittymaki.
Philadelphia cut it to 3-1 when Powe put in a rebound at 8:00 of the third period.
Heatley scored his second goal at 10:15, Richards made it 4-2 with a wrist shot 39 seconds later, and Vermette scored unassisted at 15:20 after stealing the puck from Jeff Carter.
Notes: Flyers C Richards and LW Scottie Upshall returned after missing three games because of the flu. ... Ottawa played the second of five consecutive road games that also will take the Senators to Minnesota, Nashville and Colorado. ... Ottawa D Alexandre Picard (upper body) missed his fifth straight game. ... Spezza (3 goals, 2 assists) and Bell (5 assists) extended their points streaks to four games.
CLICK HERE to follow Action News on Twitter
CLICK HERE to get Action News on your website
CLICK HERE to find Action News on Facebook