A wonderful late strike from John Rankin ended Inverness' nine-game run without a win and completed a double success over Rangers this season.
Rankin celebrates his last-minute winner for Inverness
Nacho Novo fired Rangers in front from the penalty spot only for Darren Dods to blast the home side level.
Inverness pushed on after the break and Rangers keeper Allan McGregor made good saves to deny Ian Black and Dennis Wyness, while Rankin hit a post.
But Inverness got the win they deserved when Rankin shot home from 25 yards.
Inverness made one alteration to the team which earned a goalless draw at Dunfermline five days ago, with striker Graham Bayne replacing Rory McAllister.
Bayne netted the only goal when Caledonian Thistle scored a shock win over Rangers at Ibrox in October.
The visitors also made a change in attack, with Filip Sebo replacing the injured Dado Prso.
Inverness made a bright start, with Jeremy Clement forced to hack a Bayne header away from his goal-line and Rankin shooting high and wide from a promising position.
Home goalkeeper Mark Brown had to look lively to block at the feet of Novo after 10 minutes when a Sebo shot had deflected into the Spaniard's path.
Inverness worked hard for their fine win over Rangers
Brown then had to gather a low drive from Charlie Adam before Rangers were awarded a 22nd minute penalty.
Barry Ferguson tumbled when Roy McBain clipped his heel and Novo tucked away the spot-kick.
A driving run from Ross Tokely set up a shooting chance for Rankin on the edge of the penalty area and McGregor was at full-stretch to keep out the midfielder's effort.
Inverness kept up the pressure on the Rangers defence and they were rewarded with an equaliser on 41 minutes.
Following a series of corners, a loose ball broke to Dods, who tried to squeeze a shot under McGregor.
The ball broke off the diving keeper and struck defender Karl Svensson, bouncing back to Dods and the defender lashed it high into an empty net.
Rangers began the second half with urgency but soon found themselves forced back by a spirited Inverness.
The home team thought they had found a way through when a deflected shot from Barry Wilson made its way to Rankin, who slid an angled shot past McGregor only to see it strike the post from close range.
McGregor then pushed away a curling effort from Black and had to leap high to keep out a venomous dig from Wyness.
Rangers welcomed back Chris Burke from three months on the sidelines with a shoulder injury but the substitute could do nothing to inspire his below par team-mates.
With the Rangers defence in tatters, Bayne headed weakly at McGregor and Rankin's prodded shot also ended up in the arms of the keeper.
But the busy Rankin was not to be denied and he sent a remarkable looping shot over McGregor from long range to seal a deserved victory.
Inverness CT: Brown, Tokely, Dods, Munro, Hastings, Wilson (Morgan 78), Black, McBain, Rankin, Bayne, Wyness. Subs Not Used: Fraser, McCaffrey, Duncan, McSwegan, Sutherland, McAllister.
Booked: Hastings, Black. Goals: Dods 41, Rankin 90.
Rangers: McGregor, Hutton, Svensson, Hemdani, Papac, Sionko (Burke 72), Ferguson, Clement, Adam, Novo (Lennon 83), Sebo. Subs Not Used: Klos, Rae, Murray, Stanger, N'Diaye.
Booked: Clement, Hutton. Goal: Novo 22 pen.
Ref: C Thomson