The Blues (41-28-5) moved within a point of idle Colorado for the second wild-card spot in the Western Conference. Both teams have played 74 games.
''It feels really good to score goals always, but at this time of year it doesn't matter who scores, we just need all the points that we can get here to get into the playoffs,'' Berglund said.
St. Louis played most of the game with just five defensemen after Gunnarsson exited in the first period. He will miss the rest of the season with a torn anterior cruciate ligament in his left knee.
The Blues swept the season series and have won their last five games against the Canucks.
Tarasenko extended the lead to 3-1 just 14 seconds into the third period, slipping Jaden Schwartz's pass between Nilsson's legs. Tarasenko missed the previous two games with an upper-body injury.
''Of course, it's easier to play when it's 3-1, but you've still got like 19 minutes to play and I think we played a really good third period,'' Tarasenko said.
Jaskin's sixth goal of the season with 2:29 left sealed it for St. Louis.
Berglund gave the Blues a 1-0 lead 40 seconds into the game, beating Nilsson with a backhand over his right shoulder. It was Berglund's second goal in three games.
''Great play (by Alex Pietrangelo),'' Berglund said. ''I came in full speed and I figured I'd get it on the net real quick and he wasn't ready, so it was a good start.''
Allen made the early goal stand up as the Blues were outshot 12-4 in the first period. Allen made four saves during a 45-second stretch of sustained pressure midway through the period as St. Louis failed to register a shot on goal for the final 13:09 of the opening frame.
Berglund made it 2-0 with a short-handed goal at 4:46 of the second, cashing in on a strong effort by Kyle Brodziak to chip the puck out and spring Berglund on an odd-man rush. It was just the fifth short-handed goal this season for St. Louis and the ninth allowed by Vancouver.
''I knew right away that there was going to be two of us,'' Brodziak said. ''He (Berglund) was coming pretty close behind me just from the way that play happened at our blue line. I was just hoping I was going to be able to get there. I didn't have a whole lot of gas left in the tank.''
Gagner snapped a 25-game goal drought, firing in a one-timer off a pass from Henrik Sedin with 5:13 left in the second to cut the Canucks' deficit to 2-1. It was the 150th goal of his career.
''We battled hard tonight,'' Gagner said. ''We just couldn't find a way to generate enough the second half of the game and it's one of those things, you learn from it and move on.''
NOTES: Gunnarsson was plus-15 this season. He had five goals and four assists. ... Canucks forward Daniel Sedin played in his 1,299th career game, and his assist on Gagner's goal gave him 50 points for the 11th time. ... Blues D Robert Bortuzzo was fined $3,091.40, the maximum allowed under the collective bargaining agreement, for a cross-checking penalty on Bruins forward Jordan Szwarz in the first period Wednesday.
Canucks: At the Dallas Stars on Sunday.
Blues: At the Columbus Blue Jackets on Saturday.
More NHL hockey: https://apnews.com/tag/NHLhockey
Copyright 2018 by AP. Any commercial use or distribution without the express written consent of AP is strictly prohibited.