St Johnstone kept up the heat on third-place Inverness CT by beating Dundee United at Tannadice for the first time in almost 13 years.
United's Stuart Armstrong fired over before Saints claimed for a penalty after the ball hit Brian McLean's arm.
The visitors took the lead when Liam Craig tucked home Gregory Tade's pass.
Johnny Russell came off the bench to make his come-back from injury but it was Saints went closest to extending their lead through Steven MacLean.
With two Scottish Premier League games left to play, Craig's seventh goal of the season keeps St Johnstone one point behind the third-place that would bring them a place in the Europa League qualifiers next season.
Dundee United remain sixth as they lost for the first time in 14 meetings with their Perth opponents, and perhaps more worryingly, a third SPL defeat on the bounce.
Goalmouth action was not long in coming and it stemmed from good attacking play from United's young right-back Luke Johnston. The 19-year-old found Michael Gardyne in the box who neatly laid the ball off for Armstrong to hit a left-foot effort narrowly over Alan Mannus's crossbar.
The home side's pressure continued as Gary Mackay-Steven mishit from 10 yards before Jon Daly's back-post header caused brief panic among the Saints rearguard.
However, the visitors edged themselves into the match and were unfortunate not to to be awarded a penalty.
Rowan Vine beat Johnston in the box and his poked cross appeared to hit the arm of defender McLean, but referee Euan Norris was not interested in the claims.
St Johnstone midfielder Paddy Cregg, on for the injured Chris Millar, combined well with captain Dave MacKay to provide a delivery which MacLean could not direct on target.
But Saints did find the net through Craig shortly after.
The Hibernian-bound midfielder collected Gregory Tade's square pass inside the box to guide a cool side-footed finish past goalkeeper Radoslaw Cierzniak.
That goal sent a jolt through the Tangerines, who nearly got an equaliser from an unlikely source when Sean Dillon's curling strike from 20 yards flashed past the post on the stroke of half-time.
United manager Jackie McNamara sensed the need for change and sent on Rory Boulding and Russell to try and bring that about - the latter making his first appearance since breaking a bone in his leg in March.
And the hosts went on to win some free-kicks in dangerous positions, but it was St Johnstone who fashioned the more clear-cut chances.
Vine's low cross-come-shot almost went in at the back post, then Tade nearly turned in Murray Davidson's header from the resultant corner.
A fantastic Cierzniak save then stopped Saints doubling their lead, beating away MacLean's angled half-volley from 10 yards before Tade blazed the rebound over.
- 01 Cierzniak
- 02 Dillon
- 04 McLean
- 33 Johnston (Russell - 56' )
- 44 Souttar
- 06 Flood
- 11 Mackay-Steven
- 14 Millar Booked (Gauld - 69' )
- 16 Armstrong
- 09 Daly
- 15 Gardyne (Boulding - 56' )
- 31 Anderson
- 08 Rankin
- 38 Gauld
- 45 Spark
- 07 Russell
- 18 Dow
- 19 Boulding
- 01 Mannus
- 02 MacKay
- 05 Wright Booked
- 06 Anderson
- 33 Scobbie
- 07 Millar (Cregg - 8' Booked )
- 08 Davidson
- 10 Craig (Doughty - 90' )
- 09 Tade
- 17 MacLean
- 23 Vine (Hasselbaink - 77' )
- 15 Tuffey
- 19 Miller
- 26 Caddis
- 04 Cregg
- 14 Gwion Edwards
- 16 Doughty
- 11 Hasselbaink
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +2:12 Substitution
Substitution Liam Craig goes off and Michael Doughty comes on.89:22
Brian McLean is caught offside. Alan Mannus takes the free kick.87:35
Outswinging corner taken right-footed by Willo Flood played to the near post.86:29
Free kick crossed right-footed by Willo Flood.86:29 Booking
Booking Patrick Cregg is cautioned.86:21
Handball by Patrick Cregg.81:27
Willo Flood gives away a free kick for an unfair challenge on Nigel Hasselbaink. David MacKay restarts play with the free kick.80:56
Steven MacLean takes a shot. Save by Radoslaw Cierzniak.76:18 Substitution
Substitution Nigel Hasselbaink comes on in place of Rowan Vine.67:26 Substitution
Substitution Ryan Gauld comes on in place of Mark Millar.67:26
Clearance by Radoslaw Cierzniak. Corner taken right-footed by Liam Craig, Steven Anderson produces a right-footed shot from inside the area that goes over the bar.67:26 Booking
Booking Mark Millar booked.67:17
Inswinging corner taken right-footed by Rowan Vine,62:53
Free kick awarded for an unfair challenge on Rory Boulding by Frazer Wright. Strike comes in from Mark Millar from the free kick, Thomas Scobbie manages to make a clearance. John Souttar handles the ball and concedes a free kick. Steven Anderson takes the free kick.60:55
The offside flag is raised against Gregory Tade. John Souttar restarts play with the free kick.57:56
Unfair challenge on Murray Davidson by Gary Mackay-Steven results in a free kick. Free kick taken by Liam Craig.55:34 Substitution
Substitution Rory Boulding comes on in place of Michael Gardyne.55:34 Substitution
Substitution Johnny Russell comes on in place of Luke Johnston.54:01
Save made by Alan Mannus.
Booking Frazer Wright is shown a yellow card for unsporting behaviour.53:46
Corner taken right-footed by Mark Millar from the right by-line,52:57
Jon Daly gives away a free kick for an unfair challenge on Liam Craig. Alan Mannus takes the indirect free kick.51:21
Free kick awarded for an unfair challenge on Willo Flood by Murray Davidson. Brian McLean takes the indirect free kick.45:01
The referee gets the second half started.45:00 +2:03 Half time
Half Time The first half comes to an end.44:42
Shot from just outside the area by Sean Dillon misses to the right of the target.41:07
Willo Flood gives away a free kick for an unfair challenge on Liam Craig. Thomas Scobbie takes the direct free kick.40:08
Unfair challenge on Patrick Cregg by Willo Flood results in a free kick. Liam Craig takes the free kick.37:10
Assist on the goal came from Gregory Tade.37:10 Goal scored
Goal! - Liam Craig - Dundee U 0 - 1 St J'stone Liam Craig grabs a goal from deep inside the penalty box to the bottom right corner of the goal. Dundee Utd 0-1 St Johnstone.33:15
Free kick awarded for a foul by Mark Millar on Thomas Scobbie. Direct free kick taken by Liam Craig.29:00
Foul by Willo Flood on Rowan Vine, free kick awarded. Inswinging corner taken by Rowan Vine from the right by-line played to the near post. Steven MacLean delivers the ball from the free kick right-footed from right wing, clearance by Brian McLean.28:09
Inswinging corner taken by Liam Craig, save made by Radoslaw Cierzniak.27:17
The official flags Jon Daly offside. Free kick taken by Alan Mannus.23:21
Stuart Armstrong concedes a free kick for a foul on Liam Craig. Liam Craig has a direct shot on goal from the free kick, clearance made by Brian McLean.21:27
Unfair challenge on Brian McLean by Steven MacLean results in a free kick. Indirect free kick taken by Brian McLean.19:35
Liam Craig gives away a free kick for an unfair challenge on Michael Gardyne. Free kick taken by Mark Millar.18:20
Inswinging corner taken by Mark Millar.10:56
Corner taken by Rowan Vine from the left by-line.7:39 Substitution
Substitution (St Johnstone) makes a substitution, with Patrick Cregg coming on for Chris Millar.5:46
Corner taken left-footed by Liam Craig, Frazer Wright gives away a free kick for an unfair challenge on Brian McLean. Indirect free kick taken by Radoslaw Cierzniak.0:53
Shot from just outside the box by Stuart Armstrong goes over the target.0:11
Murray Davidson takes a shot. Radoslaw Cierzniak makes a save.0:00
The game gets underway.
Live data and text provided by our data suppliers