Match ends, Rangers 1, Celtic 2.
Celtic took a giant stride towards reclaiming the Scottish Premiership title after battling back to beat Rangers at Ibrox and move six points clear of their rivals.
Aaron Ramsey’s opener was cancelled out inside seven minutes by Tom Rogic’s close-range strike, before the leaders took control when Cameron Carter-Vickers forced home after a free-kick.
The second half was delayed after broken glass was thrown on the pitch but, when play eventually resumed, Rangers could not find a leveller.
Giovanni van Bronckhorst’s side tried to fight their way back as they faced a potentially knockout blow in their title defence, but were met with stiff resistance as Celtic clung to a vital victory, with Joe Hart only forced to make one key save.
Substitute Liel Abada also passed up two chances to seal it for the visitors, with Allan McGregor pulling off an incredible stop to deny the Israeli’s second attempt.
With a six-point lead and a 16-goal advantage with six games to play, Ange Postecoglou’s men are in a commanding position to win the league, even with one more derby to come at Celtic Park.
It marks Rangers’ first domestic home defeat in more than two years, and was secured in gritty fashion in the second half when Carter-Vickers and Carl Starfelt were outstanding in heading clear repeated crosses into their box.
With Alfredo Morelos absent with injury, Kemar Roofe started up front for Rangers but he fired wide both of his side’s best chance from inside the box.
Both sides also had penalty claims waved away in a match of relentless running, with players also struggling with cramp in the closing stages.
But it was Celtic who stood firm and claimed the vital three points, extending their unbeaten domestic run to 31 games.
Celtic have been praised for their attacking play and intensity this season, which was evident in their 3-0 derby win last time.
What is less heralded is the fact they have the best defensive record in the league, and this victory was ground out in the second half through a relentless work-rate, good defensive positioning, and commitment to protect in their own box.
After a poor start from the visitors, Tom Rogic was the player who showed the most composure amid the madness in midfield, and his movement and passing ability caused Rangers problems.
But there should be kudos too for captain Callum McGregor, whose driving run set up the first goal from nothing when Celtic were toiling in the opening minutes, and Daizen Maeda, who ran constantly from the front.
There is still work to do, but no side has shipped a six-point lead at this stage of the season this century.
As for Rangers, their lack of fluency in attack in recent months domestically was evident again. Celtic seemed content to give up the wings and defend crosses, and the home side reverted to that tactic too often rather than looking for space inside.
That was even more surprising given how well they crafted the opening goal by pulling Josip Juranovic wide and freeing up Ryan Kent to run inside and cross for Ramsey to score.
They have a Europa League quarter-final to look forward to and a Scottish Cup semi-final against Celtic to come, but the league now looks a long shot even if they will keep fighting to the end.
Van Bronckhorst has got performances from the team in Europe, but a lack of a clear attacking identity continues to hamper Rangers domestically. Last year’s league triumph feels a long time ago.
Rangers manager Giovanni van Bronckhorst on Sky Sports: “It’s not over but this result makes it more difficult for us.
“We started the way we wanted but the [equaliser] was a big blow because we were playing so well. Second half, we tried to play in their half. We created good chances but in the end we failed.”
Celtic manager Ange Postecoglou: “It was an enormous effort. We didn’t get off to the greatest of starts and for this group of players to turn it around in that fashion, and the resilience this group have shown – I’m super proud.
“Everyone knows this isn’t an easy place to come to. They’re a good side and they’re undefeated here this year and, knowing the consequences and the significance of three points to the league today, it was always going to be a battle for us.”
Rangers cannot afford any more slip-ups as they travel to Paisley to face St Mirren next Sunday (12:00 BST) after Thursday’s trip to Braga (20:00) in the last eight of the Europa League.
Celtic host St Johnstone on Saturday (15:00) with no European football to distract them from their title quest.
Match ends, Rangers 1, Celtic 2.