Vancouver recovered from the scoreless first period with a power-play goal midway through the second after Blues left-winger David Perron was called for tripping.

Elias Pettersson sliced a beautiful pass to Horvat who was in front of the St. Louis net and got a snapshot off before Allen could get all the way across the crease.

Just 28 seconds later, some hard work by Gaudette added another point. The Canucks centre took a shot then crashed the net, collected his own rebound and poked it in past the Blues netminder.

St. Louis challenged the play, citing goalie interference, but the dispute was shot down after a video review.

The goal was the second of Gaudette’s NHL career.

Vancouver outshot St. Louis 14-3 in the second period and carried the momentum into the third.

Just over two minutes in, Leivo took a shot from behind the Blue’s goal-line. The puck hit Allen’s left shoulder and ricocheted into the net, putting the Canucks up 3-0.

Tarasenko answered for St. Louis, holding several Vancouver players off and shovelling a shot past Markstrom.

Virtanen added some insurance for the Canucks with eight-and-a-half minutes to go in the game, using a series of screens by his teammates to keep Allen from getting a full view of his heavy shot. Horvat registered an assist on the play.

Virtanen now has a career-high 11 goals this season. The right-winger was also credited with an assist when Eriksson scored on the empty net after Allen was pulled with five minutes left.

Get local stories you won't find anywhere else right to your inbox.Sign up here

St. Louis Blues goaltender Jake Allen (34) looks on as Vancouver Canucks center Bo Horvat (53) gets sent into the goalpost by St. Louis Blues left wing David Perron (57) during second period NHL action at Rogers Arena in Vancouver, Thursday, Dec. 20, 2018. THE CANADIAN PRESS/Jonathan Hayward