Nikita Kucherov, Cedric Paquette and Adam Erne each had a goal and an assist, Steven Stamkos and Ondrej Palat scored, and Andrei Vasilevskiy made 36 saves for the Lightning (26-7-2), who are 9-0-1 in their past 10 games.
Tampa Bay, which opened a four-game road trip with a 5-4 overtime loss to the Winnipeg Jets on Sunday, got two goals and three assists from its fourth line of Erne, Paquette and Danick Martel.
"When you don't have the first two lines scoring, the third and fourth are there to score, and that's been huge for us this year," Paquette said. "It feels like we are a complete team."
WATCH: [All Lightning vs. Canucks highlights]
Martel, who was walking to the rink when he learned he was in the lineup after forward Ryan Callahan sustained a minor upper-body injury during warmups, had an assist on Paquette's goal for his first NHL point in his sixth game, and Erne scored the game-winning goal.
"They played great all year," said Stamkos, who scored on a 2-on-1 with 2:38 remaining to make it 4-2. "Martel didn't even take warmup and amazing for him to jump in and play a great game, got his first NHL point, and stirred it up a little bit. And [Paquette] has been great all year. Those guys were great and a big reason we won."
Tyler Motte and Chris Tanev scored, and Anders Nilsson made 32 saves for the Canucks (16-17-4), who lost in regulation for the first time in seven games (5-1-1).
"It was a [heck] of a hockey game. We were playing a team that's first overall in the League, and I thought we stood in there, toe to toe," coach Travis Green said. "I like the way our team is coming together. They're sticking together, they're battling hard."
Kucherov, playing his 400th NHL game, scored at 8:40 of the first period to give Tampa Bay a 1-0 lead and extend his point streak to six games. Shortly after killing a 53-second 5-on-3 power play for Vancouver, Brayden Point won an offensive-zone face-off back to Kucherov for a quick, glove-side wrist shot through a screen.
Kucherov has eight points (three goals, five assists) during his streak.