Tomas Hyka scored his first NHL goal, and Jonathan Marchessault, Tomas Nosek and David Perron also scored for the Golden Knights, who won for the ninth time in 13 games (9-4-0). Marc-Andre Fleury made 30 saves in his 10th consecutive start (7-3-0).
Vegas has scored at least four goals in eight of its past 10 games
Sven Baertschi, Thomas Vanek and Daniel Sedin scored for the Canucks (23-31-7), who have lost eight of their past 10 games (2-7-1). Vancouver trails the St. Louis Blues by 19 points for the second wild card into the Stanley Cup Playoffs from the Western Conference.
"These guys can score. They have good offensive skill up front. We knew it was going to be a back-and-forth game," Sedin said. "I thought we played good in the first, good in the third, but in the second it got away from us."
Hyka scored at 2:29 of the first period to give the Golden Knights a 1-0 lead.
Baertschi (11:30) and Vanek (13:48) scored in a span of 2:18 to give the Canucks a 2-1 lead before Karlsson tied it 2-2 at 14:39.
"We kind of lucked out after the first, being 2-2," Perron said. "I thought they were outplaying us. We respected them too much and that's something we can't do."
Vegas scored three straight goals in the second period.
Karlsson's second of the game, at 5:36, made it 3-2. Marchessault pushed the lead to 4-2 at 6:39 on the power play, and Nosek made it 5-2 at 18:58.
"We had an unbelievable second period," Golden Knights coach Gerard Gallant said. "I thought we dominated. Sometimes, when you get that 5-2 lead, sometimes you have a little letdown, which we did in the third period. But overall, it was very good."
Sedin scored a power-play goal at 4:28 of the third period to make it 5-3.
Perron was credited with an empty-net goal at 18:09 when an errant Canucks pass went into the Vegas net for a 6-3 lead.
"They're a good team. Give them credit," Canucks coach Travis Green said. "They're in their building, they get on a roll. It's definitely frustrating. I'm not happy with the loss."