Andrew Shinnie’s first-half strike consigned Celtic to a sixth defeat in seven away games under Ange Postecoglou as their poor record at Livingston continued.
Shinnie got across Stephen Welsh and fired the only goal into the top corner in the 25th minute to earn Livi their first cinch Premiership win of the season and take them off the bottom of the table.
The touch and finish was the sort of quality Celtic lacked in the final third as they failed to make their possession and territory count and went five games without victory at the Tony Macaroni Arena.
Celtic got a number of crosses into the box but home centre-backs Ayo Obileye and Jack Fitzwater marshalled striker Albian Ajeti as the visitors ended the day in sixth place.
Postecoglou handed Boli Bolingoli a recall as the left-back played for the first time since he breached quarantine rules at Kilmarnock on August 9 last year, days after a secret trip to Spain.
Celtic had Liel Abada back on the right wing after he missed the Europa League defeat by Real Betis but were still missing a number of regulars including skipper Callum McGregor.
James McCarthy was handed his first Celtic start while Anthony Ralston was rested as Josip Juranovic moved over to his natural right-back position. Welsh replaced the absent Carl Starfelt in central defence.
Livingston started with five in midfield including three natural left-backs and on-loan Rangers player Ben Williamson, with Shinnie handed the lone striker role.
Home skipper Nicky Devlin received a yellow card within the first minute and team-mates Jason Holt and Adam Lewis joined him in the book during the first quarter as Celtic dominated.
For all Celtic’s possession, Max Stryjek’s biggest worry during this spell was when he fumbled an overhit cross from Bolingoli.
Joe Hart made his first save from Jackson Longridge’s long-range strike but he was beaten a minute later when Shinnie met the left-back’s low cross and finished from 14 yards.
Celtic still struggled to test Stryjek. David Turnbull shot wide after a loose ball flashed towards him and Cameron Carter-Vickers twice headed off target.
The hosts came close to doubling their lead just before the break when Fitzwater volleyed a Lewis free-kick but Hart threw out a hand to divert it over.
Stryjek was busier early in the second half, stopping Welsh’s header on the line and getting down to hold Turnbull’s long-range effort.
But the game soon went back to the first-half pattern with Celtic playing in the Livingston half but unable to carve out chances.
Ajeti finally got a couple of opportunities as the game entered the final 20 minutes, heading wide from six yards following a corner and forcing an excellent stop from Stryjek after getting the ball to feet on the edge of the box and turning his man.
Postecoglou made three changes in between those opportunities but his only attacking option was Mikey Johnston, who came on for his first appearance of the season following injury, in place of Tom Rogic.
Stryjek parried from Turnbull but Livi came closer when Hart touched substitute Alan Forrest’s angled drive past the post.
The Hoops continued to push but their final threat came when Carter-Vickers shot wide from 25 yards.