Vancouver won its second straight on a three-game trip that ends Sunday in San Jose. The Canucks have won four of five after a three-game skid.
Brock Boeser, Elias Pettersson, Andrei Kuzmenko and Bo Horvat also scored for the Canucks. Spencer Martin made 26 saves.
Jonathan Marchessault scored for the Golden Knights. Logan Thompson stopped 31 shots.
Vegas, meanwhile, lost for the second time in two nights after losing for the first time ever to Seattle on Friday. Prior to arguably their worst performance of the season, the Golden Knights were 11-1-3 against the Canucks, including a 5-4 win in Vancouver on Nov. 21.
Since opening the season an NHL-best 13-2-0, the Golden Knights have lost five of their last eight, with four of the losses coming at home.
The Canucks struck first when Boeser was parked perfectly in front of the net during a power play to deflect the puck past Thompson.
Vancouver made it 2-0 near the end of the first period with another power-play goal, as Miller found the back of the net with a shot from the left circle Thompson never saw.
The barrage of power-play goals continued in the second period, as Pettersson lasered a one-timer from the right dot to extend Vancouver’s lead to three goals.
The Canucks finished 3 of 5 on the power play. It came as no surprise, either, as they entered the game ranked second in the NHL with their power play since Oct. 24, converting at a 34.0% rate.
Overall, Vancouver came in ranked fifth on the power play at 27.1%.
But the Canucks up changed things with a pair of even-strength goals to push it to 5-0.
First, it was Kuzmenko skating down the slot alone and burying Nils Aman’s pretty feed from behind the net.
And with two seconds left in the second, it was Vancouver’s captain, Horvat, taking Miller’s pass from the crease and firing it past Thompson.
Marchessault ruined Martin’s bid for Vancouver’s first shutout win of the season with a goal late in the third period.
Canucks: At San Jose on Sunday.
Golden Knights: At Columbus on Monday night.