David Gustafsson, Mason Appleton and Morgan Barron also scored for the Jets.
Neal Pionk had a pair of assists.
Connor Hellebuyck made 18 saves for Winnipeg, who moved to 3-3-0 on the season.
Pavel Buchnevich had a goal and an assist for the Blues.
Robert Thomas also scored for the St. Louis.
Jordan Binnington, turned aside 26 shots for the Blues who dropped to 2-2-1.
There was no scoring in the first period.
David Gustafsson gave the Jets the lead just under three minutes into the second period when he hammered a Cole Perfetti backhand pass from behind the net past Binnington to make it 1-0.
Mason Appleton followed suit just 18 seconds later when Adam Lowry found him inside the circle and hit him with a quick pass which he one timed past Binnington, beating him low glove side to make it 2-0 Winnipeg.
St. Louis came close to scoring at the 10:12 mark when Nick Leddy fired a puck off the goal post.
Connor Hellebuyck thwarted a Jordan Kyrou breakaway just over twelve minutes into the second to keep the Blues off the board.
With Dylan Sandberg off for high sticking Pavel Buchnevich got St. Louis on the board when he redirected a Brayden Schenn pass past Hellebuyck, beating him high glove side to make it 2-1 at 18:25.
The goal was his first of the season.
The goal was his 4th of the season.
Robert Thomas narrowed the gap with 3:23 remaining as Blues Head Coach Craig Berube elected to pull his goaltender with just under four minutes remaining.
Pavel Buchnevich found Thomas alone in front of the net as Thomas fired the puck past Hellebuyck to score his first of the season.
Morgan Barron added an empty netter with 1:10 left in regulation to ice the win for the Jets.
Winnipeg now embarks on a two-game road trip and faces the Detroit Red Wings on Thursday while St. Louis travels to Calgary to face the Flames.
SHOTS-ST. LOUIS 20 WINNIPEG 30
ATTENDANCE-11,136