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.
- 01 McGregor
- 02 Goian
- 05 Papac
- 12 Wallace (Kerkar - 78' Booked )
- 16 Whittaker
- 18 Bocanegra Dismissed
- 06 McCulloch
- 07 Edu
- 08 Davis
- 19 Aluko (Little - 72' )
- 41 McCabe (Lafferty - 60' )
- 25 Alexander
- 32 Perry
- 21 Bedoya
- 40 Andrew Mitchell
- 11 Lafferty
- 28 Kerkar
- 34 Little
- 01 Forster
- 11 Cha Du-Ri Dismissed
- 21 Mulgrew
- 25 Rogne
- 02 Matthews
- 08 Brown
- 16 Ledley (Hooper - 90' )
- 18 Ki Sung-Yeung (Commons - 70' )
- 67 Wanyama Dismissed
- 09 Samaras
- 10 Stokes (Izaguirre - 32' )
- 24 Zaluska
- 03 Izaguirre
- 06 Wilson
- 46 McGeouch
- 15 Commons
- 17 Brozek
- 88 Hooper
Live Text Commentary
Full Time The final whistle goes and the game is over.90:00 +3:11
Allan McGregor takes the free kick.90:00 +3:11 Substitution
Substitution Gary Hooper replaces Joe Ledley.90:00 +3:11
Steven Whittaker fouled by Georgios Samaras, the ref awards a free kick.90:00 +1:54
Kris Commons provided the assist for the goal.90:00 +1:54 Goal scored
Goal! - Thomas Rogne - Rangers 3 - 2 Celtic Thomas Rogne finds the back of the net with a headed goal from deep inside the penalty area. Rangers 3-2 Celtic.90:00 +1:29
Steven Whittaker gives away a free kick for an unfair challenge on Kris Commons. The ball is crossed by Kris Commons,89:55
Joe Ledley gives away a free kick for an unfair challenge on Lee McCulloch. Allan McGregor takes the direct free kick.88:09 Goal scored
Goal! - Scott Brown - Rangers 3 - 1 Celtic Scott Brown scores a power penalty. Rangers 3-1 Celtic.87:07 Dismissal
Dismissal Carlos Bocanegra sent off.86:52
Carlos Bocanegra gives away a Penalty for an unfair challenge on Georgios Samaras.84:15
Foul by Maurice Edu on Charlie Mulgrew, free kick awarded. Fraser Forster takes the free kick.83:43
The ball is sent over by Salim Kerkar, blocked by Adam Matthews.83:22
Steven Davis fouled by Scott Brown, the ref awards a free kick. Direct free kick taken by Sasa Papac.81:55
Corner taken left-footed by Kris Commons, clearance by Carlos Bocanegra. Corner taken left-footed by Kris Commons, Thomas Rogne produces a header from inside the area that goes over the bar.81:18
Scott Brown fouled by Lee McCulloch, the ref awards a free kick. Kris Commons crosses the ball from the free kick left-footed from right channel, Dorin Goian makes a clearance.79:35
Direct free kick taken by Adam Matthews.79:35 Booking
Booking Salim Kerkar goes into the book.79:30
Foul by Salim Kerkar on Scott Brown, free kick awarded.78:47
The ball is sent over by Salim Kerkar, Adam Matthews gets a block in.
Substitution Salim Kerkar replaces Lee Wallace.76:39
The assist for the goal came from Steven Davis.76:39 Goal scored
Goal! - Lee Wallace - Rangers 3 - 0 Celtic Lee Wallace grabs a goal from deep inside the penalty box low into the middle of the goal. Rangers 3-0 Celtic.76:09
Andrew Little challenges Scott Brown unfairly and gives away a free kick. Scott Brown takes the direct free kick.75:20
Unfair challenge on Joe Ledley by Lee Wallace results in a free kick. Fraser Forster takes the direct free kick.74:41
Georgios Samaras concedes a free kick for a foul on Lee McCulloch. Dorin Goian restarts play with the free kick.74:04
The ball is sent over by Lee Wallace.73:24
Maurice Edu fouled by Scott Brown, the ref awards a free kick. Sasa Papac takes the free kick.72:00
Steven Whittaker delivers the ball, Lee Wallace takes a shot. Save by Fraser Forster.71:54
Lee Wallace provided the assist for the goal.71:54 Goal scored
Goal! - Andrew Little - Rangers 2 - 0 Celtic Andrew Little finds the net with a goal from close range high into the middle of the goal. Rangers 2-0 Celtic.70:45 Substitution
Substitution (Rangers) makes a substitution, with Andrew Little coming on for Sone Aluko.70:45
Shot from 30 yards from Lee McCulloch. Save made by Fraser Forster. Steven Whittaker takes a shot. Save made by Fraser Forster.69:34
Fraser Forster restarts play with the free kick.69:34 Substitution
Substitution Kris Commons on for Sung-Yeung Ki.69:34
Free kick awarded for an unfair challenge on Scott Brown by Lee Wallace.67:33
Sung-Yeung Ki concedes a free kick for a foul on Steven Davis. Steven Whittaker takes the direct free kick.67:02
Kyle Lafferty takes a shot. Fraser Forster makes a save.66:08
Free kick awarded for an unfair challenge on Georgios Samaras by Lee McCulloch. Free kick crossed left-footed by Charlie Mulgrew from left channel, clearance by Maurice Edu.65:09
The ball is crossed by Steven Whittaker.64:46
A cross is delivered by Sone Aluko, Scott Brown manages to make a clearance.64:26
The ball is crossed by Sone Aluko, Thomas Rogne manages to make a clearance. Sone Aluko decides to take the corner short.64:15
Steven Whittaker sends in a cross, clearance by Charlie Mulgrew.61:54
Free kick awarded for a foul by Steven Davis on Emilio Izaguirre. Charlie Mulgrew restarts play with the free kick.58:32
Corner taken by Sone Aluko from the right by-line played to the near post.58:32 Substitution
Substitution Rhys McCabe goes off and Kyle Lafferty comes on.58:32
Lee McCulloch takes a shot. Thomas Rogne gets a block in.56:27
Sone Aluko fires a strike on goal direct from the free kick.56:27 Dismissal
Dismissal Victor Wanyama is sent off.56:18
Victor Wanyama challenges Steven Whittaker unfairly and gives away a free kick.53:39
Free kick awarded for an unfair challenge on Emilio Izaguirre by Steven Whittaker. Free kick crossed right-footed by Sung-Yeung Ki.53:16
Sasa Papac sends in a cross, clearance made by Charlie Mulgrew.51:55
Centre by Lee Wallace, Thomas Rogne gets a block in.49:49
The ball is swung over by Sasa Papac.48:57
Victor Wanyama concedes a free kick for a foul on Steven Davis. Steven Whittaker restarts play with the free kick.47:37
Shot from just outside the box by Sone Aluko goes over the bar.47:05
Joe Ledley gives away a free kick for an unfair challenge on Steven Whittaker. Steven Whittaker takes the free kick.45:12
Foul by Lee McCulloch on Charlie Mulgrew, free kick awarded. Direct free kick taken by Charlie Mulgrew.45:01
The referee gets the second half started.45:00 +1:25 Half time
Half Time The referee calls an end to the first half.45:00 +1:16
Emilio Izaguirre produces a cross, Dorin Goian manages to make a clearance.44:02
Emilio Izaguirre sends in a cross, save by Allan McGregor.43:41
Free kick awarded for a foul by Maurice Edu on Scott Brown. Direct free kick taken by Victor Wanyama.43:18
Steven Whittaker delivers the ball, clearance by Victor Wanyama.41:56
Handball decision goes against Georgios Samaras. Carlos Bocanegra takes the direct free kick.39:28
Foul by Charlie Mulgrew on Lee McCulloch, free kick awarded. Sone Aluko crosses the ball in from the free kick.38:17
A cross is delivered by Lee Wallace, Adam Matthews gets a block in.36:38
The ball is swung over by Scott Brown, Steven Davis makes a clearance.35:21
Joe Ledley produces a cross, save made by Allan McGregor.33:57
Lee Wallace delivers the ball.32:52
Foul by Scott Brown on Lee McCulloch, free kick awarded. Direct free kick taken by Sasa Papac.29:39
Fraser Forster takes the direct free kick.29:39 Substitution
Substitution Anthony Stokes goes off and Emilio Izaguirre comes on.29:39
Unfair challenge on Sone Aluko by Victor Wanyama results in a free kick. Shot on goal comes in from Rhys McCabe from the free kick, save by Fraser Forster. Fraser Forster fouled by Dorin Goian, the ref awards a free kick.28:10
Rhys McCabe fires a strike on goal direct from the free kick.28:10 Dismissal
Dismissal The referee shows Du-Ri Cha a red card.27:56
Lee Wallace fouled by Du-Ri Cha, the ref awards a free kick.26:42
Scott Brown sends in a cross, Anthony Stokes takes a shot. Allan McGregor makes a save.25:52
Lee Wallace concedes a free kick for a foul on Du-Ri Cha. Direct free kick taken by Fraser Forster.25:14
A cross is delivered by Steven Davis, Du-Ri Cha makes a clearance.24:22
The ball is crossed by Scott Brown, Rhys McCabe makes a clearance.24:10
Foul by Sasa Papac on Scott Brown, free kick awarded. Scott Brown restarts play with the free kick.23:09
Sung-Yeung Ki takes a shot from long distance which goes wide of the right-hand post.22:19
Effort on goal by Lee Wallace from deep inside the area goes harmlessly over the bar.21:17
Effort on goal by Steven Whittaker from outside the box goes harmlessly over the bar.18:37
Anthony Stokes is flagged offside by the assistant referee. Dorin Goian takes the indirect free kick.16:56
Sone Aluko takes a shot. Thomas Rogne gets a block in. Corner taken by Rhys McCabe from the left by-line to the near post, Scott Brown makes a clearance.16:05
Corner taken by Rhys McCabe from the left by-line to the near post, clearance by Charlie Mulgrew.15:44
Joe Ledley produces a cross, Sasa Papac manages to make a clearance.15:10
A cross is delivered by Anthony Stokes, Lee McCulloch makes a clearance.14:25
The ball is crossed by Charlie Mulgrew, Effort from 12 yards by Anthony Stokes. Save by Allan McGregor. Corner taken right-footed by Joe Ledley, save made by Allan McGregor.13:10
Georgios Samaras takes a shot. Allan McGregor makes a fantastic save. Anthony Stokes takes a shot. Allan McGregor makes a save. Inswinging corner taken left-footed by Charlie Mulgrew from the right by-line, Allan McGregor makes a save.12:56
Dorin Goian produces a cross, Joe Ledley manages to make a clearance.12:07
Du-Ri Cha delivers the ball, save by Allan McGregor.10:12
Assist on the goal came from Steven Davis.10:12 Goal scored
Goal! - Sone Aluko - Rangers 1 - 0 Celtic Sone Aluko grabs a goal from inside the area to the bottom left corner of the goal. Rangers 1-0 Celtic.9:52
Anthony Stokes is ruled offside. Free kick taken by Steven Davis.9:13
Rhys McCabe crosses the ball, Du-Ri Cha manages to make a clearance. Corner taken by Rhys McCabe from the left by-line played to the near post, Sung-Yeung Ki manages to make a clearance.9:03
Steven Whittaker delivers the ball, clearance by Charlie Mulgrew.8:29
Georgios Samaras gives away a free kick for an unfair challenge on Dorin Goian. Dorin Goian takes the free kick.6:51
Shot from outside the penalty box by Rhys McCabe goes wide right of the goal.5:05
Foul by Steven Whittaker on Georgios Samaras, free kick awarded. Georgios Samaras takes the free kick.4:19
Lee Wallace challenges Scott Brown unfairly and gives away a free kick. Sung-Yeung Ki restarts play with the free kick.4:03
Foul by Maurice Edu on Sung-Yeung Ki, free kick awarded. Sung-Yeung Ki takes the direct free kick.3:09
Sone Aluko takes a shot. Thomas Rogne gets a block in. Rhys McCabe takes a inswinging corner. The ball is crossed by Dorin Goian, clearance made by Victor Wanyama. A cross is delivered by Lee Wallace, Thomas Rogne manages to make a clearance.0:00
The referee starts the match.
Live data and text provided by our data suppliers