Hansen tied the game at 1-1 9:18 into the second period, then put the Canucks ahead on a wrist shot from just inside the blue line that beat goalie Connor Hellebuyck high on the blocker side through traffic.
WATCH: All Jets vs. Canucks highlights
Hansen, who scored a career-high 22 goals while playing with Daniel Sedin and Henrik Sedin last season, has three goals in the past two games.
"That's self-explanatory," Hansen said when asked if he was feeling better. "It takes a little bit [of time] to come back feeling good, getting the endurance back up. Being able to play, not just a period or two, but the whole game. It's definitely a work in progress. ... It's never easy to be out and come back."
Sven Baertschi scored on a breakaway at 6:41 to make it 3-1, and Bo Horvat scored into an empty net with 2:14 remaining. Jacob Markstrom made 31 saves for the Canucks (14-16-3), who are 2-0-1 on a four-game homestand.
"Jannik brings a lot of speed to our line [and] gives us a lot more room to work down low and off the rush," said Henrik Sedin, who had two assists. "He's done a great job since he's been back."