Sven Baertschi also scored for the Canucks, who finished their road swing 2-3-1 after losing the first three games. Vancouver, which had one power play, allowed just one goal on 10 short-handed opportunities.
"We took some bad penalties that we didn’t need to take," coach Willie Desjardins said. "There were a couple that I thought maybe could have gone the other way. We hurt ourselves probably more than the refs did."
Tampa Bay got a goal from Jonathan Marchessault.
Both teams are off until Saturday due to the Christmas break.
"Maybe after a game like this, it’s good to get away from the arena," Tampa Bay coach Jon Cooper said.
The defending Eastern Conference champions dropped to 8-7-1 at home this season after going 32-8-1 in 2014-15.
Canucks captain Henrik Sedin contributed an assist after missing two games with a lower-body injury. Starting goalie Ryan Miller, who left with cramping during the shootout of Sunday’s 5-4 loss at Florida, was scratched.
Daniel Sedin put the Canucks up 2-1 from the top of the right circle off a pass from Henrik Sedin at 11:09 of the third. Henrik Sedin broke a tie with Luc Robitaille for 47th place with his 727th career assist.
The Sedin twins have played in 586 wins together.
"They’re remarkable," Desjardins said. "They’re always in the game. You can be getting nothing and those two can create."
Baertschi opened the scoring at 15:57 of the first. He has a goal in three consecutive games.
Tampa Bay’s power play was woeful on each of its first five opportunities. The best scoring chance actually came when Vancouver’s Derek Dorsett had his 2-on-1 backhander turned aside by Ben Bishop.
The Lightning power play entered ranked 26th in the NHL.
"It is costing us games," captain Steven Stamkos said.
The Lightning finally scored on their sixth power play when Marchessault beat Markstrom from the low right circle with 21.4 seconds left in the second.
Markstrom made a nice save on Stamkos during the opening minute of the third.
Vancouver blocked 18 shots, including seven by Alexander Edler.
"Everyone brought grit," Henrik Sedin said.
Bishop had 17 saves.
NOTES: The Canucks start a seven-game homestand Saturday against Edmonton. … Vancouver recalled Joe Cannata from Utica of the AHL to be the backup goalie. … Lightning C Brian Boyle, whose head struck the glass after an early first-period hit in Friday’s 5-2 win over Ottawa, didn’t play and is day to day. … Others on a long list of injured Tampa Bay players sitting out included C Tyler Johnson, LW Ondrej Palat and LW Jonathan Drouin. … Lightning C Cedric Paquette returned after missing 15 games with an upper-body injury.