It was their fourth straight win.
Brendan Dillon, Kyle Connor and Alex Iafallo also scored for the Jets, who closed out a two-game homestand with a win.
Josh Morrissey had a pair of assists.
Laurent Brossoit made his 15th start of the season for Winnipeg, who moved to 37-15-5 and into first place in the NHL's Central Division.
Pavel Buchnevich, Brandon Saad Joel Hofer made 28 saves for St. Louis, who dropped to 30-26-2.
Sean Monahan got the Jets on the board 8:53 into the first when Nikolaj Ehlers took the puck wide left and hit Monahan by the right hash mark with a crisp pass.
Monahan snapped the puck past Hofer, beating him low glove side to put the Jets up 1-0.
The goal was his 19th of the season.
Brendan Dillon made it 2-0 at 10:20 after Mark Scheifele won a draw and swept the disc back to Dillon.
The defenceman made no mistake, stepping into a slap shot which beat Hofer short side.
The goal was his 7th of the season.
Pavel Buchnevich replied for St. Louis 30 seconds later to make it 2-1 when he snapped up a rebound off a Marco Scandella point shot and poked a backhand past Hellebuyck to score his 23rd of the season.
Kyle Connor restored Winnipeg's two-goal cushion at 15:33 to make it 3-1 when Josh Morrissey broke up a play at the blue line before catching the Blues on a line change.
Connor sped in and beat Hofer with a low shot, glove side to score his 24th goal of the season.
Brandon Saad pulled the Blues to within a goal just under the halfway mark of the second period when he knocked a puck past Brossoit on his way to the ice to make it 3-2.
The goal was his 17th of the season.
Alex Iafallo knocked a backhand past Hofer off a Nikolaj Ehlers shot to make it 4-2 at 10:13 of the third period.
The goal snapped a 20 game scoreless drought for the winger.
St. Louis travels to Edmonton to face the Oilers Wednesday while Winnipeg visits Dallas Thursday.
SHOTS-ST. LOUIS 38 WINNIPEG 32
ATTENDANCE-13,139