The defending Western Conference champion Canucks snapped a two-game skid, twice coming from a goal behind and then winning it by producing the only goal of the final period.
Vancouver overcame a hat trick by Ryan Nugent-Hopkins, who scored his second, third and fourth goals of the season.
The final goal from Nugent-Hopkins gave Edmonton a 3-2 lead with 3:23 to play in the second, but Alex Burrows tied it 16 seconds before the end of the period by tipping in a shot.
It stayed 3-3 until Salo put a wrist shot past Devan Dubnyk, who had won his only other start this season.
Roberto Luongo allowed three goals on 29 shots. Dubnyk made 24 saves.