Garrison fired a shot from the slot that deflected off Marek Zidlicky and past former Canuck Cory Schneider for the winner a 2:18 of the extra period.
Schneider, who was traded to New Jersey in the offseason, stopped 29 shots in the loss. Jaromir Jagr and Patrik Ellas scored for the Devils.
New Jersey held a 2-0 lead midway through the second period. Vancouver responded in the same period with two goals, including Edler's wrist shot that tied the game at 13:47 of the second period.
McPhee, Cokas 'working on their marriage' after affair
Beautician charged with giving client fatal silicone butt injection