Classy Francisco Sandaza set up Cillian Sheridan for a clinical double as St Johnstone eased to victory over a toothless Hearts side.
Ryan Stevenson failed to find the target with an early chance for Hearts, while Saints' Liam Craig forced a good save from Jamie MacDonald.
But Sandaza threaded the ball through for Sheridan to power in the opener on the half-hour mark.
And a Sandaza pass allowed Sheridan to round the keeper after 55 minutes.
Saints' first home win of the season puts them level with a fourth-placed Hearts side still looking for their first away since February.
Hearts manager Paulo Sergio made nine changes, with only Marius Zaliukas and Danny Grainger retaining their places after the shock midweek Scottish Communities League Cup defeat by Ayr United.
St Johnstone were also looking to bounce back from their exit at the hands of St Mirren, with David McCracken and Kevin Moon returned from injury and Willie Gibson joining them in the starting line-up in place Sean Higgins, Jamie Adams and the injured Frazer Wright.
The two sides traded blows early on, with Ryan Stevenson sending a snap shot over from 15 yards and Chris Millar looping a drive just wide at the other end.
Liam Craig forced MacDonald to parry a ferocious free-kick over the crossbar after Andy Webster had hauled back Francisco Sandaza 25 yards out.
Sandaza's presence was giving Saints a cutting edge that was absent in the Hearts line-up and it was the Spaniard who set up the opener in an otherwise even contest.
Gathering a ball from Dave MacKay, Sandaza threaded it quickly behind the visiting defence and Sheridan fired into the roof of the net from 16 yards.
Craig ought to have done better than send a low, bobbling drive wide of the far post from a similar range after being found unmarked by Sheridan.
Hearts were stuggling to create chances, but a free-kick allowed Danny Grainger the opportunity to whip the ball into the box that just evaded the diving Marius Zaliukas 10 yards out after the Lithuanian defender broke clear of his marker.
Stevenson headed into the side netting after St Johnstone goalkeeper Peter Enckelman failed to gather a corner.
Winger David Templeton came on at the break for Webster, although it was not clear whether the already-booked defender was withdrawn because manager Sergio feared a red card or because the player had picked up yet another injury complaint.
Hearts were probing the Saints defence to little effect when the home side went further ahead.
Sheridan won a header and, after Sandaza beat Jamie Hamill to the loose ball, the Spaniard played the ball into the path of his strike partner, who rounded goalkeeper MacDonald to score.
Enckelman spilled a long drive from Stevenson and, when the ball was played back into the Saints penalty box, the Hearts forward's flick on after a mis-hit Templeton effort was clawed off the line by the nervy looking goalkeeper.
However, Saints were by then on their way to a deserved win that stretches their unbeaten run to five games.