The Blues moved to .500 with the win (12-12-2).
Dylan Holloway had a goal and an assist.
Robert Thomas also scored for the Blues.
Scott Perunovich had a pair of assists for St. Louis.
Mark Scheifele scored the lone Jet goal on the night.
Connor Hellebuyck made 30 saves for Winnipeg (18-8-0).
The loss extended the Jets losing streak to a season high four games.
There was no scoring in the first period.
Jordan Kyrou got the Blues on the board late in the second period when Brayden Schenn took control of the puck just along the boards in the neutral zone before before sending Kyrou in on Hellebuyck.
The St. Louis winger attempted a deke which the Winnipeg goaltender initially stopped before the disc was knocked into the net off a backchecking Mark Scheifele's skate.
Dylan Holloway followed up 39 seconds later when he broke in on Hellebuyck, getting off a shot before following up on his own rebound and lifting the disc past him at 18:43.
The goal was his 8th of the season.
Kyrou netted his second of the night 6:38 into the third when Dylan Holloway got control of the puck along the end boards before moving into the faceoff circle and slid the puck to Kyrou, who moved into the high slot before spinning and beating Hellebuyck with a wrister.
The goal was his 9th of the season.
Mark Scheifele scored at 15:45 of the third, beating Hofer with a wrister.
The goal was his 13th of the season.
Robert Thomas scored an empty netter at 16:21 to seal the win for the Blues.
SHOTS-ST. LOUIS 32 WINNIPEG 23
ATTENDANCE-13,100
NOTES-Jets winger Nikolaj Ehlers was put on IR and Winnipeg called up F Brad Lambert from their AHL affiliate, the Manitoba Moose earlier in the day.