Inverness Caledonian Thistle advanced to the semi-finals of the Scottish Communities League Cup for the first time with an ultimately comfortable defeat of Rangers.
Former Rangers striker Andrew Shinnie put ICT ahead with a composed finish during an even first half.
The visitors dominated the second period and grabbed an easy second through Gary Warren's header.
Graeme Shinnie completed the scoring from the penalty spot.
The scoreline was not a flattering one as Caley Thistle seldom allowed Rangers to dominate the match as they had against Motherwell in the previous round.
The visitors were clinical in attack and solid in defence, Rangers were neither, though they started brightly enough.
It was Neil Alexander, though, who twice had to save to keep the scoreline blank in the early stages.
First, he pushed away a viciously swerving drive from Aaron Doran before a more comfortable near-post take from the unmarked Billy McKay following poor defensive play by Rangers.
Indeed, almost 15 minutes had passed before Antonio Reguero was called upon to make a save - a fairly easy one to keep out Lewis McLeod's low effort.
The Spaniard had to dash off his line just moments later as a slick Rangers move ended with Andrew Little getting a shot in on goal, only to see the keeper block with his legs.
Rangers had begun to put together a couple of pretty promising attacks, but they fell behind on 27 minutes when Doran managed to poke the ball between two static defenders, allowing Shinnie to slide the ball past Alexander and into the net.
It took Ally McCoist's side until three minutes before half-time to mount anything resembling a response and when it did come - in the shape of a Chris Hegarty header - it landed on the roof of the net.
They carved out a better chance eight minutes after the interval.
Little got to the bye-line on the right before finding McCulloch with the cutback, but the captain's tame effort was well off-target.
The home fans howled for a red card to be shown to David Raven three minutes later as, having already been booked, he brought Dean Shiels to ground, but the referee Steven McLean settled for a word in the defender's ear.
Moments later, Raven won the corner from which Caley Thistle doubled their lead, though Rangers' defending again left plenty to be desired.
Graeme Shinnie swung the ball in from the right and Warren was allowed to head past Alexander unchallenged.
Terry Butcher's men should have been out of sight with a quarter of the game still to go. Hegarty was woefully short with a passback, but McKay spurned the unexpected opportunity, shooting straight at the goalkeeper.
Alexander was again on hand to keep Caley Thistle out on 71 minutes when Andrew Shinnie threaded a pass to McKay, but the striker once more found his way to goal blocked.
But the third goal did arrive when Rangers' half-time substitute Anestis Argyriou was adjudged to have barged Andrew Shinnie - who was going nowhere inside the penalty area - and Graeme Shinnie sent Alexander the wrong way from the spot.
Rangers were a well-beaten side by this stage, posing virtually no threat to Reguero and his defence.
They did find a way through with five minutes left as McLeod slipped in Barrie McKay, but the young substitute's goalbound shot was excellently stopped by the keeper.
Caley Thistle's advance to the semi-final was a deserved one, while Rangers must now aim to keep their cup hopes alive on Saturday when Alloa visit in the Scottish Cup.
Anestis Argyriou gives away a Penalty for an unfair challenge on Andrew Shinnie.
Unfair challenge on Ross Draper by Ian Black results in a free kick. Josh Meekings restarts play with the free kick.
Direct free kick taken by Graeme Shinnie.
Booking Ian Black is given a yellow card.
Unfair challenge on Andrew Shinnie by Ian Black results in a free kick.
The ball is sent over by Barry McKay, Gary Warren manages to make a clearance.
David Raven produces a cross, Lewis Macleod makes a clearance.
Billy McKay takes a shot. Save made by Neil Alexander.
The official flags Billy McKay offside. Neil Alexander restarts play with the free kick.
Unfair challenge on Barry McKay by Ross Draper results in a free kick. Barry McKay takes the free kick.
Centre by David Raven, clearance by Sanchez Emilson Cribari.
Free kick awarded for an unfair challenge on Aaron Doran by Lee McCulloch. Graeme Shinnie delivers the ball from the free kick left-footed from left channel.
Lee Wallace crosses the ball, Gary Warren manages to make a clearance.
Billy McKay takes a shot. Neil Alexander makes a save. Unfair challenge on Ian Black by Andrew Shinnie results in a free kick. Direct free kick taken by Ian Black.
Unfair challenge on Aaron Doran by Barry McKay results in a free kick. Direct free kick taken by David Raven.
Ian Black produces a cross, Graeme Shinnie manages to make a clearance.
Substitution Dean Shiels leaves the field to be replaced by Barry McKay.
Substitution Kyle Hutton goes off and Kevin Kyle comes on.
Assist by Graeme Shinnie.
58:51 Goal scored
Goal - Gary Warren - Rangers 0 - 2 Inverness Gary Warren scores a headed goal from inside the penalty area. Rangers 0-2 Inverness CT.
Inswinging corner taken by Graeme Shinnie from the right by-line,
The ball is sent over by Aaron Doran.
Foul by David Raven on Dean Shiels, free kick awarded. Direct free kick taken by Lewis Macleod.
Free kick awarded for a foul by Andrew Shinnie on Kyle Hutton. Sanchez Emilson Cribari takes the direct free kick.
The ball is swung over by Andrew Little, Effort from the edge of the area by Lee McCulloch goes wide of the left-hand post.
Booking Billy McKay is booked.
Booking The referee shows David Raven a yellow card for unsporting behaviour.
Philip Roberts delivers the ball, Sanchez Emilson Cribari manages to make a clearance.
Lee McCulloch challenges Josh Meekings unfairly and gives away a free kick. Antonio Reguero takes the direct free kick.
Josh Meekings concedes a free kick for a foul on Lee McCulloch. Direct free kick taken by Kyle Hutton.
Foul by Gary Warren on Lee McCulloch, free kick awarded. Direct free kick taken by Sanchez Emilson Cribari.
Foul by Gary Warren on Lee Wallace, free kick awarded. Free kick taken by Neil Alexander.
Christopher Hegarty challenges Andrew Shinnie unfairly and gives away a free kick. The free kick is swung in right-footed by Aaron Doran.
Philip Roberts crosses the ball, Sanchez Emilson Cribari makes a clearance.
Lewis Macleod gives away a free kick for an unfair challenge on Andrew Shinnie. Josh Meekings takes the direct free kick.
The second half begins.
Substitution Anestis Argyriou comes on in place of Ross Perry.
45:00 +0:58 Half time
Half Time The whistle is blown to end the first half.
The ball is sent over by Lewis Macleod, Gary Warren makes a clearance. Lewis Macleod concedes a free kick for a foul on Billy McKay. Free kick taken by Gary Warren.
Free kick awarded for a foul by Graeme Shinnie on Andrew Little. The ball is sent over by Lee Wallace, Header on goal by Andrew Little from inside the box goes harmlessly over the target.
Billy McKay is flagged offside by the assistant referee. Ross Perry takes the free kick.
Unfair challenge on Lee McCulloch by Gary Warren results in a free kick. Free kick taken by Ian Black.
Lee Wallace takes a shot. Owain Tudur Jones gets a block in.
The ball is crossed by Aaron Doran.
Outswinging corner taken right-footed by Aaron Doran, Ross Draper takes a shot. Neil Alexander makes a save.
Centre by Christopher Hegarty.
Free kick awarded for an unfair challenge on Ross Perry by Billy McKay. Direct free kick taken by Neil Alexander.
Ross Draper fouled by Ian Black, the ref awards a free kick. Free kick crossed left-footed by Graeme Shinnie from left channel, clearance by Kyle Hutton.
Billy McKay takes a shot. Sanchez Emilson Cribari gets a block in.
Corner taken by Ian Black from the right by-line played to the near post, Header from close range by Lee McCulloch misses to the right of the goal.
The assist for the goal came from Aaron Doran.
26:08 Goal scored
Goal - Andrew Shinnie - Rangers 0 - 1 Inverness Andrew Shinnie finds the back of the net with a goal from inside the box to the bottom right corner of the goal. Rangers 0-1 Inverness CT.
The ball is sent over by Dean Shiels, save by Antonio Reguero.
The ball is crossed by David Raven, Andrew Little makes a clearance.
Outswinging corner taken by Graeme Shinnie from the left by-line, Kyle Hutton makes a clearance.
Andrew Little is ruled offside. Josh Meekings takes the indirect free kick.
Graeme Shinnie delivers the ball from the free kick left-footed from right channel, Sanchez Emilson Cribari manages to make a clearance.
Booking The referee books Sanchez Emilson Cribari for unsporting behaviour.
Andrew Shinnie fouled by Sanchez Emilson Cribari, the ref awards a free kick.
The ball is crossed by David Raven, clearance by Ian Black.
Right-footed shot by Lewis Macleod went wide of the right-hand upright.
Corner taken by Ian Black.
Andrew Little takes a shot. Save by Antonio Reguero.
Lewis Macleod takes a shot. Save by Antonio Reguero.
Aaron Doran fouled by Dean Shiels, the ref awards a free kick. Direct free kick taken by Owain Tudur Jones.
Foul by Andrew Little on Graeme Shinnie, free kick awarded. Direct free kick taken by Antonio Reguero.
Free kick awarded for a foul by Lee McCulloch on Owain Tudur Jones. Andrew Shinnie takes the direct free kick.
Pass corner from left by-line taken by Graeme Shinnie to short, save by Neil Alexander.
Billy McKay takes a shot. Neil Alexander makes a save.
Sanchez Emilson Cribari gives away a free kick for an unfair challenge on Billy McKay. Free kick taken by Gary Warren.
Owain Tudur Jones sends in a cross. The referee blows for offside. Indirect free kick taken by Neil Alexander.
Free kick awarded for a foul by Sanchez Emilson Cribari on Aaron Doran. The free kick is swung in left-footed by Graeme Shinnie, Ross Perry manages to make a clearance.
Shot from just outside the area by Lee McCulloch goes over the bar.
Kyle Hutton challenges Aaron Doran unfairly and gives away a free kick. The free kick is swung in left-footed by Graeme Shinnie, clearance by Ross Perry. Gary Warren gives away a free kick for an unfair challenge on Ross Perry. Neil Alexander takes the direct free kick.
Andrew Little takes a long range shot clearing the bar.
Aaron Doran takes a shot. Save by Neil Alexander.
Dean Shiels produces a right-footed shot from just outside the penalty box that misses to the left of the goal.
Foul by Andrew Shinnie on Ian Black, free kick awarded. Ian Black crosses the ball in from the free kick.
The referee gets the game started.
Live text and data provided by The Press Association
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.