Robert Thomas had two assists and Joel Hofer made 30 saves for the Blues (15-16-8), who have alternated wins and losses the past eight games (4-3-1).
Tyson Jost and Fedor Svechkov scored, Nicolas Hague had two assists, and Juuse Saros made 17 saves for the Predators (16-17-4), who had won three straight and 10 of the past 14 games.
Brayden Schenn scored his 700th NHL point with a power-play goal at 8:45 of the first period to put St. Louis ahead 1-0 by tipping in Cam Fowler’s wrist shot from the point. He has 285 goals, 415 assists in 1,061 games.
Jost tied it 1-1 at 11:41 when Hague kept in a puck at the blue line and put a wrister towards the net that Jost tipped up and over Hofer’s left shoulder.
Buchnevich made it 2-1 at 18:14 when his pass on a 2-on-1 with Jake Neighbours deflected back to him off Nashville defenseman Roman Josi, allowing Buchnevich to backhand the puck into the top half of the net.
The Predators thought they had a tying goal at 17:07 of the second period when Filip Forsberg put the puck in the net, but the Blues won an offside challenge that deemed Steven Stamkos was in before the puck entered the zone legally at 17:03 and the goal was overturned.
Buchnevich’s second goal of the game made it 3-1 at 4:40 of the third period. Thomas got the outlet pass from Filip Broberg, who left a drop pass for Buchnevich just in front of the blue line. Buchnevich’s first shot rebounded off Saros in front before he deposited it behind Saros.
The goal marks Buchnevich’s first multigoal game of the season for St. Louis.
Svechkov’s short-handed goal at 12:03 made it 3-2 on a quick wrist shot from the left circle thanks to a feed from Erik Haula off the wall.