A late Hearts equaliser left St Mirren sickened with Saints having to settle for a point in the cinch Premiership following Lawrence Shankland's injury-time penalty.
The Buddies led 2-0 at half-time thanks to first-half goals from Joe Shaughnessy and Ryan Strain, but Josh Ginnelly pulled a goal back with just over 15 minutes remaining. Hearts were then reduced to 10 men when Peter Haring was shown a straight red card on 77 minutes. The drama didn't end there though with the visitors awarded a spot-kick in the final minute which Shankland slammed down the minute to grab a share of the spoils.
Stephen Robinson made two changes from the side that lost narrowly at Hibernian last weekend. Joe Shaughnessy and Richard Taylor came in for Declan Gallagher and Charles Dunne.
Saints made a bright start to the game with Strain firing into the arms of Zander Clark from distance after a neat spell of play on 19 minutes before Alex Greive saw an effort brilliantly blocked by Hearts defender Toby Sibbick on 25 minutes. Two minutes later, Alex Gogic had the ball in the net when he finished off from a flick-on, but the linesman's flag denied Saints the opener with Greive offside when Strain's free-kick was swung in.
The opener would come for Saints though as we took the lead on 36 minutes when Joe Shaughnessy scored his first goal of the season. The captain was on hand to steer home Gogic's header to the delight of the home support.
Joe Shaughnessy put us ahead with his first goal of the season (Image: Allan Picken)
Saints were in control and should have added a second with two minutes of normal time remaining in the first-half. Greive sprang the offside trap and charged forward before sliding in Curtis Main whose powerful strike was beaten away by Clark. But the second would come before the interval with Strain firing in direct from a free-kick from 25 yards after Mark O'Hara had been fouled by James Hill.
After an uneventful start to the second-half in which Hearts were seeing far more of the ball, but not creating anything, Saints came agonisingly close to a third just after the hour mark when a blistering strike from Strain was expertly pushed over the bar by Clark. The Jambos goalkeeper was to the rescue for the away side again less than a minute later when he made another super stop to push away a Greg Kiltie header.
Those missed opportunities would come back to bite the Buddies when Hearts pulled a goal back on 73 minutes. Josh Ginnelly was at the back post to knock Nathaniel Atkinson's low ball in from the right into the net to make for a nervous finish to the match.
Hearts were reduced to 10 men four minutes after their goal when Peter Haring was shown a straight red after he scythed down O'Hara as the Saints midfielder looked to break. The visitors were furious at the decision from referee David Dickinson despite a VAR check confirming the sending off.
Substitute Thierry Small came close to wrapping up the points when he was slipped in by fellow sub Lewis Jamieson, but once again Clark was there to make a big save with his feet.
And the misses would prove costly when Hearts won a penalty in the final minute of injury time when Ginnelly went down in the box under a challenge from Ryan Flynn. Shankland stepped up and slammed down the middle to secure his side a point and leave Saints gutted.
Full-Time: St Mirren 2-2 Hearts
St Mirren: Carson, Fraser, Shaughnessy (c), R.Taylor (Dunne 46), Strain, Kiltie (Jamieson 84), O'Hara, Gogic, Tanser (Small 84), Greive (Baccus 55), Main
Subs Not Used: Urminsky, Gallagher, Small, Flynn, Boyd-Munce, Offord
Hearts: Clark, Hill (Kio 75), Sibbick, Rowles, Haring, Devlin (Grant 61), Halliday (Atkinson 46), Oda (Forrest 81), McKay, Shankland, Ginnelly
Subs Not Used: Stewart, Neilson, Tait, Wilson, Kuol
Referee: David Dickinson
Assistant Referee: Gordon Crawford
Assistant Referee: Gary Hilland
Fourth Official: Graham Grainger
VAR: Alan Newlands
Assistant VAR: Graham McNeillie