Match ends, Inverness CT 2, Rangers 1.
Billy Mckay scored a stunning overhead kick as Inverness Caledonian Thistle beat Rangers to move off bottom spot in the Premiership.
Mckay's goal came minutes after Iain Vigurs had missed a penalty for the hosts.
Inverness took a first-half lead thanks to Greg Tansey's long-range strike.
Rangers levelled through Martyn Waghorn's penalty after Lee Wallace was downed but the Ibrox side ultimately fell to a second straight defeat.
They remain six points behind second-placed Aberdeen, who entertain Ross County on Saturday.
Victory takes Inverness one point above Hamilton Academical, who visit Celtic on Saturday.
Vigurs' spot-kick was poor and easily saved by Wes Foderingham. Amazingly, it did not matter.
What happened next was utterly fantastic from an Inverness point of view. Mckay, with his back to goal, angled a perfect overhead kick into the left corner to earn a monumental win.
And no-one celebrated more than Vigurs.
It was in the last minute and is a game-changer in terms of the outlook of this season for boss Richie Foran.
There is a renewed steel about Caley Thistle these past few weeks, a return to the "old Inverness' as Foran describes it. That was on show in spades against Rangers.
A thing of beauty
Tansey's opener was as good as Mckay's winner. He arrived on to a blocked Liam Polworth shot and curled a magnificent effort home.
Inverness might have had a penalty when Polworth stayed on his feet after looking like he was caught by Wallace.
Defensively, the home side harried, blocked, diverted. They dropped a little too deep and were made to pay despite surviving a few scary moments.
They reacted well to conceding, though, and Tansey was unlucky with a fierce drive that Foderingham save brilliantly.
The dramatic nature of the victory should give Inverness the shot in the arm they need. They were tremendous.
Rangers' rotten run
Rangers started the match superbly. They were incisive and crisp in their passing and created a few chances. But, as has so often been the case this season, they lacked a cutting edge.
Barrie McKay nodded over from a great position before Emerson Hyndman missed one great chance then hesitated and lost another.
Rangers began to hem Inverness in during the second half and got the break they badly needed.
Louis Laing was outfoxed by a one-two but rashly slid in, took Wallace out and conceded a soft spot-kick. Waghorn made no mistake.
It looked like Rangers would kick on on from there but Inverness had other ideas.
The Ibrox side have now won only once in their last seven league matches and face a huge struggle to overtake second-top Aberdeen.
- 25Fon Williams
- 21LaingBooked at 56mins
- 3TremarcoSubstituted forMcKayat 15'minutes
- 8DraperSubstituted forVigursat 80'minutes
- 16TanseyBooked at 66mins
- 15MulraneySubstituted forKingat 69'minutes
- 6WilsonBooked at 86mins
- 16HallidaySubstituted forHoltat 80'minutes
- 8ToralBooked at 14minsSubstituted forGarnerat 90+2'minutes
- Steven McLean
- Shots on Target
Second Half ends, Inverness CT 2, Rangers 1.
Louis Laing (Inverness CT) wins a free kick in the attacking half.
Foul by Danny Wilson (Rangers).
Corner, Rangers. Conceded by Iain Vigurs.
Substitution, Rangers. Joe Garner replaces Jon Toral.
Goal! Inverness CT 2, Rangers 1. Billy McKay (Inverness CT) right footed shot from the centre of the box to the top left corner.
Corner, Inverness CT. Conceded by Danny Wilson.
Penalty saved! Iain Vigurs (Inverness CT) fails to capitalise on this great opportunity, right footed shot saved in the bottom left corner.
Penalty Inverness CT. Billy McKay draws a foul in the penalty area.
Danny Wilson (Rangers) is shown the yellow card for a bad foul.
Penalty conceded by Danny Wilson (Rangers) after a foul in the penalty area.
Billy King (Inverness CT) wins a free kick in the defensive half.
Foul by Jason Holt (Rangers).
Brad McKay (Inverness CT) wins a free kick on the right wing.
Foul by Jon Toral (Rangers).
Attempt saved. Billy McKay (Inverness CT) right footed shot from a difficult angle on the left is saved in the centre of the goal.
Substitution, Rangers. Jason Holt replaces Andy Halliday.
Substitution, Inverness CT. Iain Vigurs replaces Ross Draper.
Attempt missed. Danny Wilson (Rangers) header from the centre of the box is close, but misses to the left.