Match ends, Celtic 2, Rangers 1.
Celtic 2-1 Rangers: Late James Forrest strike wins Old Firm derby
Celtic moved 13 points clear of Rangers at the top of the Scottish Premiership after a pulsating Old Firm derby that featured three goals, two red cards - one after the final whistle - off-the-ball flashpoints and an 86th-minute winner by James Forrest.
Neil Lennon's men have now all but secured an eighth consecutive top-flight title with only seven league games remaining following their second derby win of the season.
Odsonne Edouard stroked the hosts ahead after 27 minutes, before Alfredo Morelos was dismissed for the fifth time this term for an off-the-ball elbow to the face of Scott Brown after the Celtic captain clipped his heels.
Ryan Kent hauled Rangers level after 63 minutes with a stunning solo effort and the final 15 minutes were played with both sides down to 10 men after Celtic's Dedryck Boyata was forced off injured with Lennon having made all three of his substitutes.
But Celtic pounced after a loose pass from James Tavernier - Forrest racing into the box to slide in the winner, before Kent shoved Brown to the ground as the home skipper prevented him retrieving the ball for kick-off.
The visitors almost rallied again, but Joe Worrall's effort from three yards out was deflected wide by Kristoffer Ajer.
And Rangers' Andy Halliday was sent off in the tunnel after a scuffle between the two sets of players on the full-time whistle.
Lennon, now in his second stint as Celtic manager, has won seven of the 13 Old Firm fixtures he has overseen, drawing two and losing four.
- Rangers should have had two reds - Lennon
- Gerrard 'can't defend Morelos any more'
- Who did you rate man of the match?
- Reaction & as it happened
Unstoppable counter & preventable red
Celtic had Kieran Tierney restored at left-back after he missed the recent Scotland double-header and even before the hubbub of Edouard's goal - followed in rapid order by Morelos' brainless red card - the home team seemingly had everything under control.
In the opening four minutes alone, Allan McGregor had to beat away efforts from Olivier Ntcham and Edouard. Not long after, Ntcham had another chance but sclaffed it wide. Rangers had little possession and little momentum - and then they fell behind.
It was a counter-attack that did it - swift, direct, unstoppable. Daniel Candeias gave it away at one end and Edouard went galloping down the other. The striker ran and ran. He bamboozled the retreating Worrall, made a little space for himself and then finished with aplomb.
His 19th goal of the season was acclaimed lustily by the home support - a little too lustily. In the corner of the ground some Celtic fans spilled over the barrier and on to the edge of the pitch. A steward was knocked over in the process and needed treatment. The football authorities will need to take a little look at what happened in those moments.
Rangers' day went from bad to worse a few minutes later when Morelos walked. He was wound up by Brown, who flicked his heels as both men were jogging downfield, but the reaction - a swinging arm straight into Brown's face - was (again) the most ridiculous overreaction, the act of a player with little self-control and a very loose grasp on what it is to be a good professional.
Taking the bait from Brown was embarrassing and it put Rangers in all sorts of trouble.
'Celtic became flat & unthreatening'
At that stage you wouldn't have given tuppence for Rangers chances, but from a position very firmly under the cosh they fronted up and turned the game on its head.
They could - and probably should - have had a penalty early in the second half when Tavernier went down under a challenge from Scott Sinclair, who came on at the break for Jonny Hayes. Sinclair was involved again five minutes later when Callum McGregor put him one on one with McGregor in the Rangers goal, the keeper winning the duel.
For all their early dominance, Celtic were still not at their fluent best and their level dropped bit by bit as the contest wore on. They became flat and unthreatening. The gas went out of quite a few of them and Celtic Park became jumpy.
It grew jumpier still when Kent brushed off Brown and Mikael Lustig to score a wonderful equaliser. That goal made the stadium a little more nervous and a little angrier. Boyata and Tierney went off injured, the former punching the dugout in fury.
Celtic ran out of subs and played the last 15 minutes with only 10 men. Level-pegging in personnel, but the impetus was all with Rangers. Kent was outstanding.
Lennon's men strike 'knockout' blow
There was drama to come. Four minutes before the end, when Lennon was beginning to get stick from sections of his own support, Tavernier gave it away and the champions pounced. McGregor fed it into the terrific Edouard, who laid it off to the onrushing Forrest. The winger finished emphatically and, suddenly, Celtic Park was alive again, liberated from the tyranny of a hard-pressing Rangers.
Even at that late stage, the visitors had a huge chance to level it when Kent's shot was spilled by Scott Bain. Just as Worrall was about to put the ball into Celtic's net, Ajer got there first and hoofed it clear. The Norwegian celebrated like a fighter would greet a knockout. In a sense, it was. Celtic are now 13 points clear at the top of the league and have all but disappeared over the horizon from the rest.
On full-time, there was a bitter melee, sparked by Brown and Halliday and then added to by multiple others from both sides. Lustig ended up parading around the pitch with his torn shirt hanging off him. Bobby Madden showed Halliday a red card after the game.
There will be an examination of what happened amid the confusion, but what's indisputable is that despite Rangers throwing everything they had at Celtic, it just wasn't enough.
- 20BoyataSubstituted forat 74'minutes
- 63TierneySubstituted forToljanat 73'minutes
- 8BrownBooked at 80mins
- 21NtchamSubstituted forRogicat 64'minutes
- 15HayesBooked at 26minsSubstituted forSinclairat 45'minutes
- 22EdouardBooked at 28mins
- 24de Vries
- 37ArfieldBooked at 43minsSubstituted forDavisat 88'minutes
- 8JackSubstituted forKamaraat 79'minutes
- 16HallidayBooked at 90mins
- 21CandeiasSubstituted forDefoeat 83'minutes
- 20MorelosBooked at 31mins
- Bobby Madden
- Shots on Target
Second yellow card to Andy Halliday (Rangers).
Second Half ends, Celtic 2, Rangers 1.
Corner, Rangers. Conceded by Kristoffer Ajer.
Delay in match Odsonne Edouard (Celtic) because of an injury.
Odsonne Edouard (Celtic) wins a free kick on the right wing.
Andy Halliday (Rangers) is shown the yellow card for a bad foul.
Foul by Andy Halliday (Rangers).
Attempt blocked. Ross McCrorie (Rangers) right footed shot from the right side of the box is blocked.
Foul by Tomas Rogic (Celtic).
Ryan Kent (Rangers) wins a free kick in the attacking half.
Corner, Rangers. Conceded by Kristoffer Ajer.
Attempt blocked. Joe Worrall (Rangers) right footed shot from the right side of the six yard box is blocked.
Corner, Rangers. Conceded by Callum McGregor.
Substitution, Rangers. Steven Davis replaces Scott Arfield.
Goal! Celtic 2, Rangers 1. James Forrest (Celtic) right footed shot from the centre of the box to the bottom left corner. Assisted by Odsonne Edouard following a fast break.
Scott Brown (Celtic) wins a free kick in the defensive half.
Foul by Andy Halliday (Rangers).
Substitution, Rangers. Jermain Defoe replaces Daniel Candeias.
Attempt blocked. Daniel Candeias (Rangers) right footed shot from outside the box is blocked.
Corner, Rangers. Conceded by Jeremy Toljan.
Attempt blocked. Andy Halliday (Rangers) right footed shot from outside the box is blocked.
Scott Brown (Celtic) is shown the yellow card for a bad foul.
Foul by Scott Brown (Celtic).
Scott Arfield (Rangers) wins a free kick in the defensive half.
Substitution, Rangers. Glen Kamara replaces Ryan Jack.
Delay over. They are ready to continue.
Delay in match Connor Goldson (Rangers) because of an injury.
James Forrest (Celtic) wins a free kick on the right wing.
Foul by Ryan Jack (Rangers).
Dedryck Boyata went off injured after Celtic had used all subs.
Delay in match Dedryck Boyata (Celtic) because of an injury.
Attempt missed. Ryan Jack (Rangers) right footed shot from the centre of the box is just a bit too high.
Substitution, Celtic. Jeremy Toljan replaces Kieran Tierney because of an injury.
Delay in match Kieran Tierney (Celtic) because of an injury.
Attempt missed. Odsonne Edouard (Celtic) right footed shot from outside the box is close, but misses the top right corner.
Substitution, Celtic. Tomas Rogic replaces Olivier Ntcham.
Goal! Celtic 1, Rangers 1. Ryan Kent (Rangers) right footed shot from the centre of the box to the bottom left corner. Assisted by James Tavernier.
Kieran Tierney (Celtic) wins a free kick on the right wing.
Foul by Daniel Candeias (Rangers).