Patrick Bergland and Jaden Schwartz also scored for St. Louis, who won their second game in a row (34-20-3) after pasting the Colorado Avalanche 6-1 the night previous.
Jake Allen backstopped the Blues to the win, stopping 20 shots.
Connor Hellebuyck took the loss for the Jets (31-14-9), turning aside 22 shots.
The Jets suffered their first outright home loss in regulation since December 14th, a 5-1 loss to the Chicago Blackhawks.
“They came out and looked ready to go. They played a game last night, we were all going to bed when they were getting on a plane to leave St. Louis. The fact they come into our building and have more energy than us is a little bit concerning," said Jets captain Blake Wheeler.
Kyle Connor and Patrick Laine had singles for Winnipeg.
There was no scoring in the first period.
Vladmir Tarasenko got St. Louis on the board 4:18 into the second,
The goal was his 22nd of the season and 1st goal in his last seven games.
Alex Steen moved in and knocked Jets defenceman Josh Morrissey off the puck along the side boards before nudging the disc to Tarasenko, who moved into the face off dot before unleashing a high wrister, beating Winnipeg goaltender Connor Hellebuyck high blocker side, just inside the goal post.
Patrick Bergland made it 2-0 at 10:13 into the second period, redirecting a Robert Bertuzzo pass from the side boards past Hellebuyck, beating him high blocker side to score his 8th of the season.
Alex Steen made it 3-0 at 11:39 as he converted a Alex Pietrangelo pass into a wide open net.
Kyle Connor scored at 17:33 firing a puck past Jake Allen when Jack Roslovic spotted him and hit the Winnipeg forward with a crisp cross-ice pass which he promptly fired past Allen from the top of the left face off circle, careening in off of St. Louis defenceman Vince Dunn's skate.
The goal was his 18th of the season.
With Vladmir Sobotka off for hooking Patrick Laine scored at 11:39 of the 3rd period, blowing a slap shot past Allen from the top of the left faceoff circle to make it 3-2.
The goal was his 25th of the season.
But the excitement was short lived as Vladimir Tarasenko scored just over a minute later, stuffing a puck past Hellebucyk from the side of the net to make it 4-2 St. Louis at 12:45.
The goal was his 23rd of the season.
Jaden Schwartz added a late empty netter to seal the win for the Blues.
St. Louis Head Coach Mike Yeo thought his club pushed hard for the win, their second in a row on back-to-back nights against a club that beat them their last seven outings. "We knew we were gonna need everybody in here tonight. We knew what a tough test it was gonna be," said Yeo. "That's a team (Jets) that, they've lost I think one game in regulation since October."
But Jets Head Coach Paul Maurice didn't mince words afterward.
"We were horseshit tonight. That’s a technical term for our game. Nobody is in a good mood and you’re angry with it. You don’t like to get beat like that. We got beat in St. Louis and played one hell of a game. We weren’t any good tonight and didn’t deserve to win the game.”
The game marked the return of Jets centre Mark Scheifele, who missed 16 games with a shoulder injury suffered against the Edmonton Oilers on December 27th.
St. Louis returns home to host the Pittsburgh Penguins Sunday.
Winnipeg continues their ten game homestand Sunday, hosting the New York Rangers.
SHOTS-ST. LOUIS 27 WINNIPEG 22 ATTENDANCE=15,294