Murray Davidson scored two first-half headers as a dynamic St Johnstone defeated Hearts to all but secure a top six Premiership finish.
Davidson twice stooped to nod corner-kicks beyond Neil Alexander, with Darnell Fisher capping a brilliant counterattack with a late third.
Saints climb to fourth in the table thanks to Ross County’s Highland derby drubbing.
A poor Hearts side lost at Tynecastle for the first time since September.
Defeat brought to an end a run of four straight wins for the Jambos as Saints captain Steven Anderson created a new club record in making his 362nd appearance.
The visitors started the game brightly with Chris Kane, supported by former Tynecastle midfielder Danny Swanson causing all sorts of problems.
The opening goal game from a corner after just 11 minutes.
Teenage defender John Souttar allowed Davidson to escape and the midfielder had a simple task in converting Liam Craig’s delivery.
It was no more than Tommy Wright’s side deserved after a very positive opening to the game.
Indeed, only a last-gasp challenge by Blazej Augustyn denied the visitors a second after Alexander had blocked a David Wotherspoon strike from 16 yards out.
Set-pieces were in particular proving fruitful for Saints as the home rearguard’s marking continued falter.
Hearts slowly eased their way into the game and came close to an equaliser after 19 minutes, when Juanma’s cross was met by Jordan McGhee, but Alan Mannus saved well.
It was from another Craig corner that Saints doubled their advantage. In a carbon copy of his opener, Davidson had space to knock the ball into the empty net.
Hearts head coach Robbie Neilson introduced Sam Nicholson at the break with the ineffective Abiola Dauda making way.
Still though the visitors piled forward, Chris Millar sending in a searching cross that was just wide and Alexander saving well at the feet of Kane.
It was proving a frustrating afternoon for the home fans as they watched their side struggle to find any rhythm to their game.
Neilson made a further switch as captain for the day Augustyn was replaced by striker Gavin Reilly, with Prince Buaben dropping back to centre-half.
Jamie Walker came close to reducing the deficit with a pile-driver of a volley that fizzed just over the crossbar, and Juanma had claims for a penalty turned away by referee Thomson after he clashed with Anderson.
At the other end Craig crashed a terrific 35-yarder off the crossbar as Hearts, who were pouring men, forward left gaps at the back.
The scoring was wrapped up with two minutes left when Fisher finished off excellent build-up from Wotherspoon and Stevie McLean to round off a terrific afternoon for Saints.