Joe O'Shaughnessy goal gives St Johnstone victory over 10-man Hearts
Joe Shaughnessy's header was enough to give St Johnstone victory over Hearts, enabling the hosts to leapfrog Ian Cathro's side and move into fourth place in the Ladbrokes Premiership.
Hearts' woes were not helped by an insipid display and a sending off for substitute Sam Nicholson, after a verbal altercation with home supporters in front of the East Stand.
There was little to account for in a cagey opening period but the encounter burst into life with 18 minutes on the clock. A hanging cross from Brian Easton was cleared but only as far as Graham Cummins, who sliced his half-volley well over.
St Johnstone sensed blood, increasing the tempo, and six minutes later, they carved out another opening. A neat interchange between Blair Alston and Clive Smith split the Hearts defence - but Alson could only loft his effort over.
As the game approached the half hour mark, Paul Paton saw a fizzing drive expertly tipped over the bar by Hearts goalkeeper Jack Hamilton.
Easton came closest to breaking the deadlock in the first half, when a loose ball fell kindly for the defender in the penalty area - but his strike hit the bar and Hearts scrambled clear to remain unscathed at the interval.
Within a minute of the restart Craig had his head in his hands after a glaring miss. Steven MacLean teed up the St Johnstone midfielder on the edge of the area but he missed the target with the goal gaping.
The away side registered their first shot on target midway through the second half.
Esmael Goncalves surged down the left flank and played a ball in field to Bjorn Johnsen but his weak effort failed to trouble Alan Mannus. It would be the striker's final contribution as he immediately made way for Nicholson.
The hosts made the decisive breakthrough when Hamilton fumbled the ball and gave away a needless corner. Craig's delivery was met by the head of Shaughnessy to put the home side in front.
Hearts' misery was compounded when Nicholson was dismissed with seven minutes remaining for gesturing towards the home support.
As the match entered stoppage time, the away side almost found a leveller but after creating space in the area, Goncalves curled a strike inches wide of the far post.