Match ends, Livingston 1, Celtic 0.
Beleaguered Celtic lost for the fourth time in five games in all competitions as Andrew Shinnie's goal lifted Livingston off the bottom of the Scottish Premiership.
Celtic are now seven months without an away win domestically, and rarely looked like ending that run here.
Shinnie lashed the home side ahead in a first half where the visitors failed to test goalkeeper Max Stryjek.
They improved after the break but could not salvage a point.
It leaves Celtic toiling in sixth place after three league defeats in six games, and already four points behind champions Rangers.
Livingston, who had previously claimed just one point in five games, move up to ninth.
Not since a three-minute cameo away to Kilmarnock on 9 August 2020 had Boli Bolingoli been seen in a Celtic shirt. An ill-judged holiday to Spain in the midst of the Covid-19 pandemic had led to him being shipped off on loan to Turkey, seemingly never to appear for the club again.
Yet the Zaire-born full-back was back in the side under Ange Postecoglou. A big performance from him was needed to win over a sceptical Celtic support.
Predictably, Celtic started on the front foot, but little was falling for them in the box. Liel Abada shot over while a number of cross balls failed to reach their target.
Livingston were having to chase and hope something would fall their way, and their patience paid off when Shinnie scored his first goal for the club.
Deployed as a striker by boss David Martindale, he got himself across Stephen Welsh, took a neat touch, then turned and arrowed a shot beyond goalkeeper Joe Hart.
Celtic were shaken, but their domination continued. However, Livingston goalkeeper Stryjek was having an easy afternoon with Cameron Carter-Vickers and David Turnbull missing half chances.
Instead, Stryjek's opposite number Hart had to pull off a spectacular point-blank save to deny Jack Fitzwater with a header.
Celtic needed a creative spark. Tom Rogic tried to provide it with a driving run but was crowded out by a swarm of Livingston shirts. Welsh and Turnbull had efforts on target but again Stryjek collected them with the minimal of fuss.
Albian Ajeti had struggled to make an impact, but he headed wide, then turned brilliantly on the edge of the box before forcing Stryjek's first serious save as Celtic began to threaten as defeat stared them in the face.
Stryjek saved well again from Turnbull, but once more Hart had to keep Celtic in the game at the other end when he pushed away Alan Forrest's low-angled shot.
Celtic piled on the pressure late on. Carter-Vickers thumped a long-distance effort wide of the post, and then Fitzwater had to clear after Stryjek spilled a cross.
But the goal wouldn't come and Livingston have still not lost at home to Celtic since February 2007.
Man of the match- Andrew Shinnie
What did we learn?
There appears to be two sides to Celtic this season. The swashbuckling version that scored 12 over two games with Dundee and St Mirren, and had scored three on Thursday in Seville.
However, the version that appeared in West Lothian look stunted in the final third, far too predictable, and rarely looked like breaching Livingston's goal.
The home side had gone into this game rooted to the bottom of the table without a win. But they made life as difficult as possible, and David Martindale's decision to play Shinnie as a forward paid dividends.
What did they say?
Livingston manager David Martindale: "Andrew Shinnie reminded me of big Lyndon Dykes today, even the aerial threat. He's just such a clever footballer. It was a top class number nine performance and his finish epitomised his overall performance.
"To a man, everybody on the park was fantastic today."
Celtic manager Ange Postecoglou: "We didn't start the game well and we paid the price. After they scored we dug ourselves into a little bit of a hole. We just weren't aggressive enough.
"It's not good enough. If we want to be successful we can't continue not picking up results in these games. That's the test for us."
What's next?
Livingston are away to Rangers in the League Cup on Wednesday (19:45 BST) then travel to Hearts in the Premiership on Saturday (15:00). Celtic host Raith Rovers in the League Cup on Thursday (19:45), before welcoming Dundee United on Sunday in the Premiership (15:00).
Player of the match
BaileyOdin Bailey
Livingston
Avg
- Squad number14Player nameBaileyAverage rating
8.12
- Squad number22Player nameShinnieAverage rating
7.90
- Squad number8Player namePittmanAverage rating
7.90
- Squad number17Player nameForrestAverage rating
7.77
- Squad number18Player nameHoltAverage rating
7.68
- Squad number3Player nameLongridgeAverage rating
7.59
- Squad number6Player nameObileyeAverage rating
7.52
- Squad number21Player nameMcMillanAverage rating
7.52
- Squad number12Player nameWilliamsonAverage rating
7.46
- Squad number16Player nameLewisAverage rating
7.43
- Squad number29Player namePenriceAverage rating
7.41
- Squad number5Player nameFitzwaterAverage rating
7.33
- Squad number2Player nameDevlinAverage rating
6.89
- Squad number32Player nameStryjekAverage rating
6.82
Celtic
Avg
- Squad number15Player nameHartAverage rating
4.19
- Squad number20Player nameCarter-VickersAverage rating
4.14
- Squad number18Player nameRogicAverage rating
4.11
- Squad number88Player nameJuranovicAverage rating
4.06
- Squad number17Player nameJotaAverage rating
4.02
- Squad number14Player nameTurnbullAverage rating
3.97
- Squad number11Player nameAbadaAverage rating
3.93
- Squad number23Player nameBolingoli-MbomboAverage rating
3.92
- Squad number57Player nameWelshAverage rating
3.85
- Squad number10Player nameAjetiAverage rating
3.76
- Squad number16Player nameMcCarthyAverage rating
3.67
- Squad number19Player nameJohnstonAverage rating
3.13
- Squad number12Player nameSoroAverage rating
2.84
- Squad number6Player nameBittonAverage rating
2.83
Line-ups
Livingston
Formation 4-5-1
- 32Stryjek
- 2DevlinBooked at 1mins
- 6Obileye
- 5Fitzwater
- 3LongridgeSubstituted forForrestat 65'minutes
- 12WilliamsonSubstituted forPittmanat 60'minutes
- 16LewisBooked at 21mins
- 21McMillanSubstituted forBaileyat 60'minutes
- 18HoltBooked at 18mins
- 29Penrice
- 22Shinnie
Substitutes
- 1Barden
- 8Pittman
- 9Anderson
- 11Montaño
- 14Bailey
- 17Forrest
- 24Kelly
Celtic
Formation 4-3-3
- 15Hart
- 88Juranovic
- 20Carter-Vickers
- 57WelshBooked at 64minsSubstituted forBittonat 72'minutes
- 23Bolingoli-MbomboBooked at 88mins
- 18RogicSubstituted forJohnstonat 72'minutes
- 16McCarthySubstituted forSoroat 72'minutes
- 14Turnbull
- 11Abada
- 10Ajeti
- 17Neves Filipe
Substitutes
- 5Scales
- 6Bitton
- 12Soro
- 19Johnston
- 29Bain
- 54Montgomery
- 56Ralston
- Referee:
- Euan Anderson
- Attendance:
- 8,573
Match Stats
- Possession
- Home21%
- Away79%
- Shots
- Home7
- Away16
- Shots on Target
- Home4
- Away5
- Corners
- Home3
- Away10
- Fouls
- Home12
- Away13
Live Text
Post update
Full Time
Second Half ends, Livingston 1, Celtic 0.
Post update
Foul by Nir Bitton (Celtic).
Post update
Nicky Devlin (Livingston) wins a free kick on the right wing.
Post update
Attempt blocked. Michael Johnston (Celtic) right footed shot from outside the box is blocked. Assisted by Nir Bitton.
Booking
Boli Bolingoli-Mbombo (Celtic) is shown the yellow card for a bad foul.
Post update
Foul by Boli Bolingoli-Mbombo (Celtic).
Post update
Alan Forrest (Livingston) wins a free kick in the defensive half.
Post update
Attempt missed. Cameron Carter-Vickers (Celtic) right footed shot from outside the box is close, but misses to the left. Assisted by Nir Bitton.
Post update
Corner, Celtic. Conceded by Nicky Devlin.
Post update
Corner, Celtic. Conceded by Nicky Devlin.
Post update
Offside, Livingston. Adam Lewis tries a through ball, but Alan Forrest is caught offside.
Post update
Corner, Livingston. Conceded by Joe Hart.
Post update
Attempt saved. Alan Forrest (Livingston) left footed shot from the left side of the box is saved in the bottom right corner. Assisted by Odin Bailey.
Post update
Attempt missed. David Turnbull (Celtic) right footed shot from the centre of the box misses to the right. Assisted by Josip Juranovic with a cross.
Post update
Attempt saved. David Turnbull (Celtic) left footed shot from outside the box is saved in the top centre of the goal. Assisted by Nir Bitton.
Post update
Jota (Celtic) wins a free kick on the left wing.
Post update
Foul by Scott Pittman (Livingston).
Post update
Corner, Livingston. Conceded by Cameron Carter-Vickers.
Post update
Foul by Nir Bitton (Celtic).