Match ends, Celtic 0, Ross County 2.
Celtic's stranglehold on Scottish silverware is over - and the pressure has intensified on manager Neil Lennon - after they were bundled out of the League Cup at home by Ross County.
Ross Stewart's first-half penalty and Alex Iacovitti's late header ended a run of 35 cup wins and earned County a quarter-final at Livingston.
Having picked up every domestic trophy since 2017, Celtic have won just two of their past 10 matches. They also cannot progress in Europe and trail Rangers by 11 points in the Scottish Premiership.
Lennon's side do have two games in hand as they attempt to win a record 10th league title in a row but were lacklustre against a depleted County side who they had beaten 5-0 in Dingwall in September.
- Lennon admits Celtic pressure mounting
- Can Lennon survive Ross County defeat?
- Celtic 'totally united' - Lennon
- What now for Lennon & Celtic?
Stuart Kettlewell's players defended like lions and limited Celtic to just a few chances as they earned a first ever win at Celtic Park.
It was Celtic's first domestic cup defeat since losing to city rivals Rangers in the 2016 Scottish Cup semi-finals, with County meting out the Glasgow side's last League Cup loss in January of the same year.
And it is the first time Celtic have suffered four successive home defeats since January 1958 and, afterwards, there was a heavy police presence as hundreds of fans gathered outside to protest.
Celtic huff and puff, but County hold firm
With Callum McGregor given a rare rest after Thursday's 4-1 reverse away to Sparta Prague, the home side were sluggish in midfield, struggling to break down well organised opponents.
When Ryan Christie was upended by Callum Morris right on the edge of the box Odsonne Edouard's free kick was beaten away by Ross Laidlaw, while Tom Rogic later shot just wide.
Kristoffer Ajer looked painfully uncomfortable on the left of a three-man Celtic defence but the County opener came from the other flank as Josh Reid suddenly galloped into a huge open space to cross low into the six-yard box.
Stewart nipped in front of Christopher Jullien at the near post, with the defender catching him on the heel. The big striker kept a cool head to roll in his sixth goal of the season from the penalty spot.
Celtic had the perfect opportunity to respond immediately but Albian Ajeti hit the base of a post from 14 yards as he ran on to a cute flick from Rogic.
County rarely ventured out of their own half after the interval, packing bodies in front of their penalty area. And the tactic worked a treat, with Celtic huffing and puffing as an Ajer effort was blocked, Mohamed Elyounoussi headed wide and Edouard hooked a shot over.
The visitors then completed a famous victory when Iacovitti crashed in a header following a flick-on from a corner.
What they said
Celtic manager Neil Lennon: "If you keep losing games, there is an expectation at this club, there's a demand for excellence and there's a demand for wins - I am fully aware of that.
"I am not standing here like the happy clapper saying everything's okay, because it's not. But we'll do everything we can - if I've still got the opportunity to do that - to turn things around. Today's result wouldn't have helped, put it that way."
Ross County manager Stuart Kettlewell: "We're ecstatic, but the big picture for me is we need to take that on going forward. Sometimes you can upset the odds by sticking together and we've done that.
"The players have answered my call. I asked them to stand up and be men and I thought, to a man, they did that."
'Clearly issues behind scenes' - analysis
Former Scotland winger Neil McCann on Sportsound
Celtic have got monumental problems in there now it seems. I wouldn't like to see Neil Lennon lose his job. I and others feel the players have let him down. There's something not right in there, there's clearly issues behind the scenes.
Former Celtic goalkeeper Pat Bonner on Sportsound
The players are not responding to him now. You've got to question their attitude. That's the issue at the moment, a group of players who we were singing the praises of and now they've gone so far back it's incredible.
- 6BittonSubstituted forMcGregorat 68'minutes
- 44ElhamedSubstituted forDuffyat 79'minutesBooked at 82mins
- 18RogicSubstituted forKlimalaat 84'minutes
- 10AjetiSubstituted forElyounoussiat 68'minutes
- 43ReidSubstituted forRandallat 77'minutes
- 24PatonBooked at 27minsSubstituted forMckayat 89'minutes
- 19LakinSubstituted forTillsonat 13'minutes
- Kevin Clancy
- Shots on Target
Second Half ends, Celtic 0, Ross County 2.
Foul by Scott Brown (Celtic).
Billy Mckay (Ross County) wins a free kick in the defensive half.
Attempt saved. Patryk Klimala (Celtic) header from the centre of the box is saved in the centre of the goal. Assisted by Diego Laxalt with a cross.
Substitution, Ross County. Billy Mckay replaces Harrison Paton.
Corner, Ross County. Conceded by Vasilios Barkas.
Attempt saved. Connor Randall (Ross County) right footed shot from the right side of the box is saved in the bottom right corner.
Offside, Ross County. Ross Laidlaw tries a through ball, but Ross Stewart is caught offside.
Substitution, Celtic. Patryk Klimala replaces Tomas Rogic.
Goal! Celtic 0, Ross County 2. Alex Iacovitti (Ross County) header from the centre of the box to the bottom left corner following a corner.
Corner, Ross County. Conceded by Callum McGregor.
Shane Duffy (Celtic) is shown the yellow card for a bad foul.
Foul by Shane Duffy (Celtic).
Ross Stewart (Ross County) wins a free kick in the defensive half.
Offside, Ross County. Harrison Paton tries a through ball, but Ross Stewart is caught offside.
Substitution, Celtic. Shane Duffy replaces Hatem Elhamed.
Attempt missed. Odsonne Edouard (Celtic) right footed shot from the centre of the box is just a bit too high. Assisted by Mohamed Elyounoussi.
Corner, Celtic. Conceded by Connor Randall.
Substitution, Ross County. Connor Randall replaces Josh Reid.