Arturs Silovs made 35 saves for his first NHL victory in his second start for the Canucks (22-30-4), who had lost three straight. Anthony Beauvillier scored twice, and Luke Schenn had three assists.
"We need some positive stuff around here, right?" Vancouver coach Rick Tocchet said. "It's been kind of negative and we need some positive."
Silovs, a 21-year-old rookie from Latvia, bounced back after giving up five goals on 27 shots in his NHL debut on Wednesday, a 6-4 loss to the New York Rangers. He made his best saves on Travis Konecny in the second period, first getting his right pad across on a backdoor chance at 16:52, and his blocker on a short-handed breakaway with 1:50 left in the period.
"Feels great," Silovs said. "I was working for that and finally accomplished."
Scott Laughton and Morgan Frost scored, and Carter Hart made 17 saves for the Flyers (22-25-10), who have lost four straight (0-3-1).
"It's hard to reflect right now, but I thought that there was no quit even though you can look at the score, how it ended up. It's not a reflection of the game," Konecny said. "We worked really hard, we believed in ourselves and they just had a few more bounces that ended up in net."
Beauvillier put Vancouver ahead 1-0 at 14:24 of the first period, deflecting Schenn's point shot from the left hash marks.
Laughton tied it 1-1 at 15:56, deflecting a shot from Justin Braun under the arm of Silovs. It was the first point in 36 games this season for Braun, who dressed as the seventh defenseman and was playing for just the fourth time in the past 23 games.
"He's a great pro and he's a guy that you cheer for, and he just hangs in there," Philadelphia coach John Tortorella said. "I thought he played hard, and good for him."