Ross County booked a place in the League Cup final against Hibernian in sensational style after coming from behind to beat 10-man Celtic 3-1 at Hampden Park.
A whirlwind start to the match saw Celtic winger Gary Mackay-Steven scoring before a minute had elapsed, but after Hoops defender Efe Ambrose was sent packing by referee Craig Thomson in the 13th minute for fouling Staggies striker Alex Schalk in the box, Martin Woods levelled from the penalty spot.
It proved to be the turning point in the encounter.
Ross County defender Paul Quinn, making his second debut for the club after joining last week following his release from Aberdeen, headed the Highlanders into the lead three minutes after the interval with Schalk adding a third in the 63rd minute with a thunderous drive.
To compound a miserable afternoon for Ronny Deila's men, County goalkeeper Scott Fox saved a Leigh Griffiths penalty in the 75th minute as the Staggies battled for their place in the March 13 final.
As a second-tier side, County beat Celtic 2-0 in the 2010 William Hill Scottish Cup semi-final but this time, in Deila's 100th game in charge, it ended hopes of a Hoops treble which had looked firmly on course at the start of the match. There were just seconds on the clock when a Callum McGregor pass sent Griffiths racing clear through the middle and the Hoops striker, with only Fox to beat, unselfishly squared to Mackay-Steven to knock into an empty net.
Even the Hoops supporters appeared taken by surprise at such an early advantage.
Griffiths twice more threatened to get through a porous Staggies defence, with Ambrose getting his head to two McGregor corners, the first cleared off the line by Richard Foster, the second speeding past the far post.
In between those two chances, Schalk drew a fine save from Celtic goalkeeper Craig Gordon with a 25-yard drive at the expense of a corner which came to nothing but which offered some hope for County.
That hope grew when Ambrose was sent packing for a 'last man' foul on Schalk as he drove towards Gordon. Before Woods sent the Scotland international the wrong way with his spot-kick, Erik Sviatchenko, the Denmark defender signed from Midtjylland last week, replaced McGregor to make his debut.
The loss of a man did not deter Celtic, who continued to dominate.
In the 25th minute, midfielder Stuart Armstrong curled a shot just over the crossbar before Jonathan Franks came on for Dingwall midfielder Stewart Murdoch, who had picked up an earlier booking.
Gordon saved from Woods and Fox thwarted Nir Bitton and then Sviatchenko in the follow-up as both sides threw themselves forward energetically before the break.
Three minutes after the restart County forged ahead when, from a Woods corner, captain Andrew Davies headed back across and Quinn bulleted a header into the net from six yards.
The game stretched and further drama ensued when a swift Staggies break ended with Woods playing in Schalk for the striker to lash a left-footed shot high past Gordon.
Celtic captain Scott Brown, recovered from a knee injury, replaced Bitton as Deila looked for some inspiration and indeed the Parkhead men kept pressing.
In the 70th minute a penalty claim for a challenge by Michael Gardyne on Mikael Lustig was ignored but five minutes later Thomson did point to the spot for a handball by Ross County substitute Brian Graham, on for Schalk, but Fox blocked Griffiths' fiercely-struck penalty.
Gordon prevented Jackson Irvine from making it 4-1 on the break and at the other end, in the tiring final stages, Fox's leg denied Griffiths as County defended their lead all the way to the final whistle, with some determination.
CELTIC: Gordon, Lustig, Ambrose, Boyata, Tierney, Bitton (Brown, 67 mins), Johansen, Mackay-Steven, McGregor (Sviatchenko, 14 mins), Armstrong (Forrest, 79 mins), Griffiths. Unused subs: Bailly, Izaguirre, Ciftci, Nesbitt
ROSS CO: Fox, Fraser, Quinn, Davies, Foster, Murdoch (Franks, 28 mins), McShane, Woods, Gardyne (Boyce, 83 mins), Shalk (Graham, 71 mins), Irvine. Unused subs: Woods, Reckord, Boyd, De Vita
Man of the Match: Alex Shalk
Match rating: 8/10
Referee: Craig Thomson