Rangers have beaten Celtic at Celtic Park for the first time since 2010.
Steven Gerrard's side were the better side for the majority of the first half but looked as if they would go 1-0 down when Celtic won a penalty.
But Alan McGregor would save from Ryan Christie, and Rangers made their opponents pay as they were ahead moments later.
Borna Barisic got down the left and his cut-back was expertly finished by Ryan Kent.
Celtic were level six minutes later - and in controversial circumstances.
Callum McGregor's long-range strike found the back of the net after a deflection from Odsonne Edouard.
But replays showed that it struck the Frenchman's hand. With no VAR in Scotland, the incident wasn't reviewable and the goal stood.
But it wouldn't matter as Nikola Katic headed home the winner in the 56th minute.
It wasn't all good news for Rangers, though.
That's because their controversial striker, Alfredo Morelos, was sent off in stoppage time.
And he was sent off in ridiculous fashion.
Rangers had already won the game when Morelos ran through in the dying seconds.
But, after he was caught up and tackled, the Colombian striker inexplicably decided to dive in the box.
What makes the dive even more stupid is that Morelos was on a yellow card at the time. The referee rightfully gave him his second yellow for diving and he was sent off.
What a stupid sending off.
To make matters even worse, Morelos made a cut-throat gesture to the Celtic fans as he was walking off the pitch.
Morelos is going to be in big trouble for that. He just had to put a negative in what was one of the best days in their recent history.
Incredibly, that's the seventh time Morelos has been sent off for Rangers and the second time in three games.
Celtic's lead at the top of the table is now just two points. Rangers could overtake them if they win their game-in-hand.News Now - Sport News