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.
Interpol investigating stolen passports on missing flight
Dennis Rodman pledges to end trips to North Korea