Lawrence Shankland captained Hearts as they returned to third with a historic 3-2 win in Perth.
The striker hit number 16 of the season as he slotted home another penalty as the Jambos turned on the style against St Johnstone. Hearts started life without Craig Gordon as Zander Clark replaced the skipper and Tynecastle hero following his horrific double leg break on Christmas Eve. And the stopper was regularly called into action as his side battled for the points in a five-goal thriller.
Shankland's strike was followed up by a slick goal from Alan Forrest after a wonderful passing move saw the Hearts midfielder slot home. Hearts then suffered a blow when Stevie May pulled one back from the spot before a Barrie McKay rocket put daylight between the teams. Jamie Murphy pulled another back but the Jambos held out to claim their first McDiarmid Park win in 12 years.