Rangers 3-2 Celtic
Reigning champions Rangers prevented the Scottish title being won on their own patch despite a dramatic late rally from nine-man runaway leaders Celtic.
Sone Aluko opened the scoring after a mazy, 10th-minute run into the box.
Cha Du-Ri was sent off after 29 minutes, Victor Wanyama followed 12 minutes after the break and Andy Little and Lee Wallace slotted further goals.
Celtic captain Scott Brown scored a penalty after Carlos Bocanegra was sent off - then Thomas Rogne headed home.
The two late goals - the latter in stoppage time - could not prevent a Rangers victory that Celtic manager Neil Lennon watched from the media room having been banned from the dugout for the second half by the referee.
It was a loss that ended the visitors' 21-game unbeaten run in the league.
The scene had been set for Celtic as they looked to recover from last week's defeat in the Scottish Communities League Cup final by claiming their 43rd league title.
A 100th league win over Rangers would have seen Celtic beat the previous earliest date for clinching the title - 4 April - two years to the day since Neil Lennon took over as manager from Tony Mowbray.
Ally McCoist, his squad depleted by the club's entry into administration, was hoping to avoid being the first Rangers manager to oversee four successive home defeats and the first to concede the title to Celtic at Ibrox since 1967 and made five changes to the team that lost to Dundee United last weekend.
With Gary Hooper and James Forrest not fit enough to start, and Kelvin Wilson also dropping out, Lennon was forced into changes too, with Cha, Georgios Samaras and Ki Sung-Yeung coming in as Celtic matched Rangers' five in midfield.
But Rangers' bright start was soon rewarded when Aluko picked the ball up 30 yards from goal and weaved through a group of Celtic players, nutmegging Rogne and sidestepping Charlie Mulgrew in the process, before slipping the ball under goalkeeper Fraser Forster for a superb individual goal.
Celtic responded and Samaras almost surpassed Aluko with a run from midway inside his own half, jinking past four Rangers players before having his 12-yard drive pushed clear by goalkeeper Allan McGregor.
Anthony Stokes failed to connect properly with the rebound and the ball bounced on to the top of the crossbar before the Irishman forced McGregor to turn it wide at full-stretch with a 15-yard shot on the turn.
Aluko found Wallace in space charging into the Celtic box and, although the full-back fired over, it was a similar move that led to Cha's dismissal soon after when he pulled back the full-back on the edge of the box.
An angry Lennon, a frequently animated presence on the touchline in the first half, had words with referee Calum Murray at the interval and subsequently did not reappear after the break.
Matters then boiled over on the pitch as Wanyama was sent off for a two-footed challenge on Whittaker.
Fine blocks by Forster denied Kyle Lafferty, McCulloch and Whittaker, but after the goalkeeper saved from Wallace at point-blank range on 77 minutes, Little was on hand to score with his first touch after coming off the bench.
Wallace slotted under Forster after being set up by Davis on the break five minutes later, but Celtic almost staged an amazing escape act when Bocanegra was sent off for pulling down Samaras with a minute of normal time remaining.
Brown coolly slotted the penalty and Rogne headed in at the back post in stoppage time, but it was not enough to deny Rangers a win that salvages some bruised pride and delays Celtic's celebrations at least another week.