Match ends, Kilmarnock 2, Rangers 1.
Rangers' Scottish Premiership title hopes suffered a potentially decisive blow after two late Kilmarnock goals left them 10 points behind Celtic.
Steven Gerrard's side conceded twice in the last 13 minutes to drop points for the third time in five league games.
Stephen O'Donnell cancelled out Scott Arfield's stunning opener amid controversy before a dramatic finale.
First, Alfredo Morelos had a goal ruled out for a push, before Eamonn Brophy lashed in with two minutes left.
Rangers still have a game in hand over Celtic, but their destiny is no longer in their own hands as they attempt to stop their city rivals winning a record-equalling ninth consecutive title.
Kilmarnock rouse Clarke spirit as title slips away
Rangers have not been firing since the winter break and the early evidence at Rugby Park was it would be more of the same as the visitors were ponderous in attack and looked short of ideas.
But build-up and patterns of play mattered little when Arfield stepped up to smash in his second stunner in four days to answer his manager's rallying cry to his midfielders for more goals to ease the burden on Morelos and Jermain Defoe.
It should have been a jolt to the system but, other than that moment of magic, the opening half was a bit of a toil for Rangers. Morelos' header forced Jan Koprivec to stir, then Joe Aribo slashed a shot wide under pressure from Dario Del Fabro, and that was about the totality of the first-half chances for either side.
Kilmarnock stuck to the compact 4-4-2 that brought them so much success under Steve Clarke last term, and did well to frustrate Rangers, while increasingly growing into the game in the second half.
Pre-match Kilmarnock boss Alex Dyer called for a "big night" from Brophy and his striker delivered in a typical display of relentless energy as he and his team-mates put in the type of performance that became routine against the Old Firm with Clarke in charge.
Brophy had one shot well-blocked, as did his strike partner Nicke Kabamba, but a more ambitious strategy after the break did leave Kilmarnock open to the counter-attack.
They were caught out by Morelos' stunning pass in behind for Ryan Kent, and when the former Liverpool forward went to ground under pressure from Chris Burke, referee John Beaton had a decision to make but chose to wave play on.
Morelos then had a stunning lob from distance crash off the bar, having been booked for diving just a minute previously, as Rangers searched for the goal that would ease their stress.
But it never arrived, instead it was Kilmarnock who took a grip of the match. O'Donnell, as he had done in the season opener when these two sides met, calmly slotted home the leveller - which had more than a hint of controversy about it - as the ball struck the arm of Rory McKenzie before it dropped for Niko Hamalainen to provide the assist.
But that was only the start of the drama, as Morelos uncharacteristically headed over from seven yards when totally unmarked before converting James Tavernier's brilliant cross, only for his celebrations to be cut short as the officials had spotted a push on Stuart Findlay in the build-up.
It is another decision that is sure to be pored over in the days to come, but crucially Kilmarnock powered on, while Rangers switched off.
A failure to defend a straight ball from deep allowed Brophy to race through and, with ice in his veins, he lashed the ball across Allan McGregor into the bottom corner to spark wild scenes on the Kilmarnock bench.
It was a result that roused the Clarke spirit that Dyer has tried to rekindle at Rugby Park in recent times, while Rangers might consider this late collapse as the night the title was lost.
Man of the match - Eamonn Brophy
BBC Scotland's Jonathan Sutherland
Such a tenacious, tigerish team performance from Kilmarnock in the second half and hard to pick out one individual but Brophy gets the nod.
The striker has worked tirelessly this season, sometimes on his own but more recently with the able support of Nicke Kabamba.
He battled manfully against the Rangers defenders in the first half with scant reward, but kept going. In the end his moment came, and how.
'We were all over the place' - reaction
Kilmarnock manager Alex Dyer: "I'm just happy that we showed what we can do after showing Rangers too much respect in the first half. If someone says 'that reminds me of a Steve Clarke team', I'll take that all day. I learned so much from the gaffer."
Rangers manager Steven Gerrard: "The second-half we didn't go out like a team in the position of us, which is trying to sustain a title push. We looked all over the place, we couldn't handle a simple long ball. Our leaders in the team couldn't clear our box. We've got some issues at the moment but I'm responsible for them."
- 26Del Fabro
- 29BurkeSubstituted forMillenat 88'minutes
- 6PowerBooked at 44mins
- 8DickerBooked at 16mins
- 9BrophySubstituted forJohnsonat 90+1'minutes
- 27KabambaBooked at 87mins
- 1McGregorBooked at 90mins
- 7HagiSubstituted forStewartat 82'minutes
- 17AriboSubstituted forKamberiat 86'minutes
- 14KentBooked at 44mins
- 20MorelosBooked at 57mins
- John Beaton
- Shots on Target
Second Half ends, Kilmarnock 2, Rangers 1.
Allan McGregor (Rangers) is shown the yellow card.
Attempt blocked. Greg Stewart (Rangers) left footed shot from outside the box is blocked. Assisted by Ryan Jack.
Corner, Kilmarnock. Conceded by Connor Goldson.
Substitution, Kilmarnock. Connor Johnson replaces Eamonn Brophy.
Offside, Rangers. Ryan Jack tries a through ball, but Greg Stewart is caught offside.
Goal! Kilmarnock 2, Rangers 1. Eamonn Brophy (Kilmarnock) right footed shot from the right side of the box to the bottom left corner. Assisted by Nicke Kabamba with a headed pass.
Substitution, Kilmarnock. Ross Millen replaces Chris Burke.
Attempt missed. James Tavernier (Rangers) right footed shot from the right side of the box is just a bit too high. Assisted by Ryan Kent.
Nicke Kabamba (Kilmarnock) is shown the yellow card for a bad foul.
Andrew Halliday (Rangers) wins a free kick in the defensive half.
Foul by Nicke Kabamba (Kilmarnock).
Foul by Alfredo Morelos (Rangers).
Stuart Findlay (Kilmarnock) wins a free kick in the defensive half.
Substitution, Rangers. Florian Kamberi replaces Joe Aribo.
Substitution, Rangers. Greg Stewart replaces Ianis Hagi.
Attempt blocked. Scott Arfield (Rangers) right footed shot from outside the box is blocked. Assisted by Alfredo Morelos.
James Tavernier (Rangers) wins a free kick in the defensive half.
Foul by Rory McKenzie (Kilmarnock).