Livingston sealed successive wins and climbed to fourth in the cinch Premiership as they held off a spirited second-half fightback from St Johnstone to secure a 4-2 victory.
Stephen Kelly's first-half double and a goal in either half from James Penrice was enough to secure all three points in a six-goal thriller at McDiarmid Park.
The home side were booed off the pitch at half-time but fought back through substitutes Jamie Murphy and Connor McLennan. However, their comeback hopes were soon dashed as Penrice sealed all three points for the visitors up the other end with a stunning strike into the top left-hand corner.
- How the teams lined up | Match stats
- Scottish Premiership table | Fixtures | Results
- Get Sky Sports | Download the Sky Sports App
St Johnstone boss Callum Davidson made three changes from his side's defeat to Aberdeen, with Nicky Clark and David Wotherspoon coming in for Jamie Murphy and Cameron MacPherson, while Adam Montgomery replaced Tony Gallacher who missed out altogether.
David Martindale named an unchanged side from Livingston's 2-0 win over Ross County, with Kurtis Guthrie returning to the substitutes' bench after a lengthy absence.
The home side started well but found themselves behind as Livingston took the lead against the run of play when Kelly picked the ball up on the edge of the box, shifted the ball onto his left foot to drill the ball through a sea of bodies and into the bottom corner.
It was all Livingston after the opener, and they scored again in the 15th minute when Kelly was again given time and space on the edge of the box to line up a shot and he flashed home a fine drive to double the visitors' lead.
St Johnstone were booed off as John Beaton blew his whistle for half-time. Davidson reacted with an array of changes at the break as Murphy, McLennan and Cammy MacPherson came on in place of Graeme Carey, Wotherspoon and Alex Mitchell.
They looked livelier after the interval and threatened an incredible comeback when substitutes Murphy and McLennan both poked home from close range after some hesitant Livingston defending.
However, all hopes of sealing a point were dashed when Penrice played a well-worked one-two with Kelly down the left before firing into the top corner beyond Remi Matthews.
What's next
The attention turns to the Scottish Cup for Livingston with a fourth-round tie against Stenhousemuir on 21 January. Kick-off 3pm.
Their next Scottish Premiership match is at home to Hearts on 29 January, live on Sky Sports. Kick-off 1.30pm.
St Johnstone's next game is away to Rangers in the league on 28 January. That match kicks off at 3pm.