With Sharks forward Patrick Marleau in the penalty box for hooking, Perron beat Martin Jones from in close after receiving a pass from Torey Krug after the Blues tied it with 40 seconds remaining in the third period.
"I called for it as it was kind of a messy entry, but I saw that [Krug] was going to kind of retain control or whatever, keep the puck," Perron said. "I started calling for it because I knew I was behind their [defense]. I was going to look to make a pass and I just felt like maybe I was going to catch the goalie quick five-hole before he could get down, and it worked."
Perron had a goal and two assists, Mike Hoffman had a goal and assist, and Jordan Binnington made 30 saves for the Blues (10-5-2).
"I thought our first period was pretty good, our second period no, not good, and then we woke up and thought we had a good third and ended up tying it late and winning in overtime," St. Louis coach Craig Berube said. "Our guys stuck with it and did a good job."
Noah Gregor and John Leonard scored second-period goals, and Martin Jones made 42 saves for the Sharks (6-7-2).
"There were definitely spurts where we played a good, hard, fast game," San Jose defenseman Brent Burns said. "Obviously there were ebbs and flows, thing to clean up, but there were definitely points in that game where we were in control of that game."
The teams play again here Saturday.