Match ends, Livingston 0, St. Johnstone 1.
St Johnstone earned a third straight Scottish Premiership win for the first time in 14 months to end Livingston's eight-match unbeaten league run.
Matty Kennedy's fifth-minute goal, sliding home Tony Watt's precise cross, proved enough to take the points.
Tommy Wright's side remain in seventh but victory lifts them to within a point of Livingston, who drop to sixth.
The hosts' best chances were a Scott Pittman effort and a Steven Lawless' volley that was deflected over.
Defeat was their first at home in the league this season, and only a second in 10 matches on their return to the top flight.
Watt's not to like?
Watt received his fair share of stick for missing both a penalty and a sitter in St Johnstone's weekend victory over St Mirren, yet the Scotland cap certainly showed his value as they became the first side to beat Livingston in the league since Celtic on the opening day of the season.
The former Celtic striker's goal drought continued into an eighth game, but he was a live-wire all night.
Watt combined skill and physical power to bundle his way into the box and set up the goal for Kennedy, who he linked up with nicely throughout.
On other occasions, such as when he skinned Alan Lithgow down the right, it was Watt's pace that shone through - a constant menace to a Livingston back three who are no strangers to stout defending.
Holt faces new challenge - analysis
Livingston have deservedly had plenty of credit for the brilliant start they have made to their first season back in the top flight. Yet, on 18 points, they are now only one ahead of St Johnstone, whose campaign has gone relatively under the radar until now.
But three consecutive wins - and three straight clean sheets - have propelled them into a healthy position, another reminder of the consistently good work being done by Wright and company in Perth.
Gary Holt has worked wonders for Livi and he declared beforehand that "people are waiting for us to fail". His challenge now is to rally his men again after a rare defeat.
'No bones about it, we were rubbish' - reaction
Livingston manager Gary Holt: "Let's not make any bones about it - we were rubbish. We didn't start well and we're really poor. It's a blip and these things happen. It's one game and we'll take it on the chin."
St Johnstone manager Tommy Wright: "Not bad for a team that Kris Commons described as boys [on Tuesday's Sportsound]. I hope he's listening because he was totally disrespectful to us. We knew we had to come here and show character. Three wins on the bounce and 17 points from 11 games is a great return for us."
- 26HalkettBooked at 84mins
- 15LawlessSubstituted forKajaat 71'minutes
- 8PittmanBooked at 33mins
- 7JacobsSubstituted forSibbaldat 78'minutes
- 45MengaBooked at 57mins
- 17RobinsonSubstituted forBurnsat 69'minutes
- 19FosterBooked at 21mins
- 3TanserBooked at 90mins
- 10WotherspoonSubstituted forCallachanat 81'minutes
- 32WattSubstituted forKaneat 78'minutes
- 33KennedySubstituted forWrightat 86'minutes
- John Beaton
- Shots on Target
Second Half ends, Livingston 0, St. Johnstone 1.
Scott Tanser (St. Johnstone) is shown the yellow card.
Declan Gallagher (Livingston) wins a free kick on the right wing.
Foul by Jason Kerr (St. Johnstone).
Foul by Craig Sibbald (Livingston).
Joe Shaughnessy (St. Johnstone) wins a free kick on the right wing.
Substitution, St. Johnstone. Drey Wright replaces Matthew Kennedy.
Craig Halkett (Livingston) is shown the yellow card for a bad foul.
Foul by Craig Halkett (Livingston).
Ross Callachan (St. Johnstone) wins a free kick in the attacking half.
Attempt missed. Craig Sibbald (Livingston) left footed shot from outside the box misses to the right.
Substitution, St. Johnstone. Ross Callachan replaces David Wotherspoon.
Christopher Kane (St. Johnstone) wins a free kick on the right wing.
Foul by Ricki Lamie (Livingston).
Substitution, Livingston. Craig Sibbald replaces Keaghan Jacobs.
Substitution, St. Johnstone. Christopher Kane replaces Tony Watt.
Keaghan Jacobs (Livingston) wins a free kick in the defensive half.
Foul by Matthew Kennedy (St. Johnstone).
Substitution, Livingston. Egli Kaja replaces Steven Lawless.