Jets Centre Mark Scheifele got control of the puck at the St. Louis blueline before giving the puck away to Perron, who moved in on a breakaway and beat Hellebuyck with a backhand deke to give the Blues the win.
The goal was his 16th of the season.
The Blues appeared to have the game won until late in the third when Jets captain Blake Wheeler drove the net hard and converted a Nikolaj Ehlers feed from behind the goal line past Craig Binnington.
Ehlers, punched the puck ahead along the left side boards before gaining control of the puck and feeding Wheeler to make it 4-4 and sent the game into overtime.
Tyler Bozak had a pair of goals for the Blues, who won their 7th straight contest.
Alex Pietrangelo scored and added an assist.
Justin Faulk also scored for St. Louis.
Jaden Schwartz had three assists.
Jordan Binnington stopped 26 shots for the Blues, who moved to 25-8-6.
Kyle Connor scored twice in the loss for Winnipeg.
Gabriel Bourque also scored for the Jets, who lost their 4th straight home contest.
Connor Hellebuyck made 30 saves for Winnipeg, who dropped to 21-15-3.
Justin Falk got St. Louis on the board 1:10 into the contest one timing a Jaden Schwartz feed from the corner past Winnipeg goaltender Connor Hellebuyck, beating him just above his left pad.
The goal was his 3rd of the season.
Gabriel Bourque drew the Jets even with 45 seconds remaining in the first, blowing a slapshot past Blues starter Jordan Binnington off a Mason Appleton shot which drifted out to the left faceoff dot.
Bourque skated into the disc and beat Binnington low glove side to make it 1-1.
Alex Pietrangelo gave the Blues a 2-1 lead 5:30 into the second, jamming a puck between the goal post and Hellebuyck's skate to make it 2-1.
Kyle Connor made it 2-2 at 9:37 after taking a Nathan Beaulieu feed from the right side boards before moving in tight to the goal and beating Billington just under the cross bar.
Nikolaj Ehlers nearly gave Winnipeg the lead almost finishing off a 2-on-1 pass from Jack Roslovic but his skate prevented the puck from going into a wide open net.
St. Louis took the lead on the power play at 16:08.
With Mark Scheifele off for hooking the Blues worked a short passing play finished off by Tyler Bozak, who snapped the disc past Hellebuyck from his right side to make it 3-2.
The goal was his 6th of the season.
With Vince Dunn off for slashing, Kyle Connor tied the match with a power play marker 3:12 into the third, shovelling a rebound off a Mark Scheifele shot past Billington to make it 3-3.
The goal was his 17th of the season.
Tyler Bozak gave the Blues the lead at 5:10, one timing a Robert Thomas feed from the right corner, beating Hellebuyck high glove side to make it 4-3 from fifteen feet out.
Blake Wheeler tied the game with 1:14 remaining in regulation to send the game to overtime.
David Perron scored the overtime winner for the Blues.
SHOTS-ST. LOUIS 35 WINNIPEG 30