The Canucks had grabbed a 3-2 lead on a Daniel Sedin shot that went in off Flyers defender Luke Schenn with 2:48 left in regulation.
But brother Brayden responded with 46.8 seconds remaining, converting a pass from Scott Hartnell at the right side of the net.
After a scoreless overtime, Vincent Lecavalier put a forehand shot past Eddie Lack in the first round of the tiebreaker and Mason turned aside all three Canucks shooters to secure the victory.
Claude Giroux notched a goal and an assist and Mark Streit also scored as the Flyers won a second straight on the road.
Sedin provided a goal and an assist for Vancouver, which lost for just the second time in December.
Jannik Hansen and Tom Sesisto also scored.
Lack finished with 24 stops.