Celtic are on the brink of another Scottish Premiership title after emerging from a stormy derby against 10-man Rangers with a vital victory.
A Matt O'Riley strike and an own goal from John Lundstram, who was also sent off, proved enough for Brendan Rodgers' side to move six points clear of their rivals with two games left and a better goal difference.
An already lively contest burst into life before the break as three goals and a red card came in 12 frantic minutes.
Firstly O'Riley drilled Celtic in front, before Lundstram diverted Daizen Maeda's cross into his own net three minutes later to put the leaders in control.
However, Rangers' initial response was excellent.
Borna Barisic crossed for Dujon Sterling, and his header was flicked home by Cyriel Dessers to revive Rangers' title hopes.
But just as the few in blue at Celtic Park had some renewed purpose, Lundstram flew into a tackle and clattered Alistair Johnston.
After initially only being shown a yellow card, the Rangers midfielder was sent down the tunnel in first-half stoppage time after referee Willie Collum changed his decision following a review.
That made Rangers' already difficult task severe, and Celtic should then have made life more comfortable for their 60,000 fans, but struggled to bury their visitors.
O'Riley had a tame penalty effort saved by Jack Butland after he was tripped by Mohamed Diomande just nine minutes into the second half, and Maeda had two goals ruled out for offside.
But despite a stack of missed opportunities setting up an extremely nervy finish, Celtic now just need one point from games against Kilmarnock and St Mirren to secure a third straight title.
Player of the match - Callum McGregor (Celtic)
Manic derby sums up season - analysis
This was another utterly compelling derby, and one which summed up the Premiership title race. Celtic are the better team with more quality players, yet were still somehow unconvincing.
This now inevitable league crown has not been won with the flourish of Rodgers’ first era, or the last two under Ange Postecoglou. Celtic won’t care. In fact, it might make it all the sweeter.
Despite their toil in sight of the line in this game, their victory was deserved and yet again their big players stepped up when it counted. That's four Old Firm games unbeaten this season, with three wins.
McGregor was immense, especially in the first half. Having him fit again, alongside Reo Hatate, O'Riley, and Cameron Carter-Vickers has been the difference in the run-in. Rangers simply don't have players of that ilk.
That was perhaps summed up by Lundstram's challenge, which effectively killed their hopes. It was a poor decision from an experienced player and cost his team.
Philippe Clement has been praised for making a fist of this title race since arriving in the autumn. Especially given the injury list he has had to contend with.
The loss at Ross County and draw with Dundee in the space of three days last month was the turning point and, when the dust settles, those will be the moments they reflect on.
The same questions over this squad will linger. Is it a mentality issue? Or are they simply not up to the standard required?
Those are the issues Clement and the club will have to grapple with in the summer.
Before that, they have to take some momentum into the Scottish Cup final against Celtic in a bid to end an up-and-down season with two trophies.
That would be some consolation for finishing as Premiership bridesmaids again.
What they said
Celtic manager Brendan Rodgers: "We made the game really tense at the end when there was no need for it to be.
"We're not over the line yet, but we're in a great place. We need to recover and look to finish the job on Wednesday.
"It's always the best team that wins after 38 games. We're not there yet, but the finish line is in touching distance."
Rangers manager Philippe Clement: "John [Lundstram] made a bad decision and he knows [that]. We don't forget everything he has done for the team.
"Everybody felt there was still a chance. We were not clinical enough. We need to recover fast and get the three points against Dundee.
"I never accept until it's mathematically sure. It's a long shot now."
What's next?
Rangers are in action on Tuesday as they host Dundee at Ibrox (19:30 BST) and anything other than a win confirms Celtic as champions.
Celtic can finish the job themselves on Wednesday at Rugby Park against Kilmarnock (19:30).