Cillian Sheridan came back into the starting line up for St.Johnstone after serving a one match suspension, while Alan Maybury came in for the injured Callum Davidson.
Paolo Sergio was forced into several changes with many of his senior players suffering niggling injuries after their cup exertions in midweek. Hamill and Black were fit enough to make the bench, but the influential Craig Beattie dropped out completely.
With the Perth men looking for some measure of revenge after their controversial exit from the Scottish Cup to Hearts, they came out of the traps early and quickly penned Hearts back with some neat play but without any success with the final pass.
As the game slowly trundled along both teams looked fairly comfortable with only the odd threat to either goalkeeper and a long-range shot from Jody Morris the only shot of note, as St. Johnstone squandered numerous chances, Hearts grew into the match and were starting to look lively on the break with Driver providing their main threat on the counter.
With the pattern seemingly set it was no surprise that when Hearts took the lead on 28 minutes, it stemmed from a slack pass by Sheridan inside his own half allowing McGowan to be released down the right and his low driven cross was lashed home by impressive youngster Jason Holt.
St.Johnstone, in their pursuit of a European place, continued to look the hungrier team and kept with the style of play that has stood them well this season using both flanks to try to prise open a solid Hearts defence. It was a combination of Croft and Sandaza on the right creating the space for Mackay to cross, which was met by the on-rushing Murray Davidson to expertly side foot the ball past Macdonald from the edge of the box.
Hearts were dealt a blow at half time with MacDonald having to go off, handing a competitive debut to young goalkeeper Mark Ridgers.
St. Johnstone started the second half with more grit than their Edinburgh counterparts and this was to prove vital as captain Jody Morris and his midfield companion Davidson took control of the middle of the park allowing Sandaza, Sheridan and Croft to impose themselves on the Hearts defence, well marshalled as it was by Webster.
St.Johnstone again let themselves down on numerous occasions with their choices in the final third, with Sandaza the main culprit.
With the shift in the match evident Paolo Sergio looked to his bench and threw on the experienced Hammill and Santana for youngster Holt and the ineffective Novikovas. The substitutions had the desired effect as Hearts began to test the relatively quiet Mannus in the Saints goal, as quick thinking from Hammill gave Robinson a chance to strike at goal.
The game livened up on 74 minutes when smart play down the right between Croft and Sandaza saw the Spaniard cut down the by-line into the box and as he opened up for a shot a clumsy challenge from Zaliukas resulted in a penalty which was hotly contested by the Hearts players. With all the fracas around him Sandaza showed nerves of steel and after a long delay thundered the ball past Ridgers.
St.Johnstone did their best to give Hearts a point as the defence switched of in the final five minutes which saw Glen hit the post and trundle another past the upright when through on Mannus. But the Perth Saints held on and move four points clear of Hearts and level on points with Dundee United, although Lomas’ side have a game in hand.
St. Johnstone: Mannus; Mackay, Maybury, Morris, Wright; McCracken, Davidson (Millar 80), Croft, Craig; Sheridan, Sandaza.
Subs not used: Enckelman, Anderson, Compton, Oyenuga, Keatings, Gray.
Hearts: MacDonald (Ridgers 45); McGowan, Webster, Zaliukas, Grainger; Robinson, Barr, Holt (Hamill 66), Driver; Glen, Novikovas (Suso 66).
Subs not used: Black, Skacel, Morton, Smith.
Referee: Steven McLean
Man of the Match: Danny Grainger