Jordan Kyrou scored, and Buchnevich also had an assist for the Blues (28-30-11), who had lost two straight, but have points in nine of their past 10 games (7-1-2). Logan Mailloux had two assists, and Jordan Binnington made 14 saves.
Filip Hronek scored the lone goal for the Canucks (21-40-8), who have lost two in a row and 12 of their past 15 (3-9-3). Kevin Lankinen made 18 saves.
Jimmy Snuggerud appeared to put the Blues up 1-0 at 6:36 of the second period, but the goal was immediately waved off because St. Louis forward Dylan Holloway made contact with Lankinen shortly before Snuggerud scored.
Suter did give St. Louis a 1-0 lead at 10:17. Lankinen robbed Robert Thomas alone at the top of the crease and got his pad on the first rebound attempt by Suter, but the puck bounced in off Suter's left leg as he slid towards the net on his knees.
Buchnevich made it 2-0 just 1:19 later at 11:36 when he buried a cross-ice pass from Philip Broberg with a one-timer from the top of the right face-off circle past a diving Lankinen.
Vancouver challenged a goal by Holloway at 16:06 for a missed stoppage in play, and video review determined that Snuggerud had played the puck with a high stick, negating the goal.
Hronek cut the deficit to 2-1 with a power-play goal at 8:32 of the third period. His wrist shot from the blue line deflected off the stick of Mailloux under Binnington's glove from just above the crease.
Kyrou scored an empty-net goal off a pass from Buchnevich while on the power play at 19:12 to secure the 3-1 final. Buchnevich's assist was his 500th NHL point (198 goals, 302 assists).