Celtic leapfrogged Rangers at the top of the Scottish Premier League thanks to Joe Ledley's second-half header.
Celtic's Fraser Foster made a wonderful save from an early Lee Wallace header and was relieved to see Carlos Bocangera shoot wide from close range.
But Celtic dominated the second half and Ledley crashed in a header from a Charlie Mulgrew corner on 52 minutes.
Rangers offered little in response and Celtic made it nine league wins in a row with ease.
Having trailed by 15 points on 5 November - albeit with two games in hand - Celtic go into the new year with a two-point advantage in the title race.
Celtic did most of the pressing in a disjointed first half but the best chances fell to the visitors, who have now dropped 11 points in their last seven outings.
Six minutes had passed when Wallace raced in at the back post to meet Sone Aluko's cross from the right but Forster made a terrific save to claw the midfielder's close-range header away.
Television replays later suggested the ball had crossed the line but there was little in the way of protest from the men in blue.
On 23 minutes, an Aluko corner was nodded down by Nikica Jelavic and Bocangera could only awkwardly scoop the ball wide from inside the six yard box.
Rangers goalkeeper Allan McGregor was kept busy, but the saves he made to keep out shots from Scott Brown, Gary Hooper and James Forrest were routine.
Georgios Samaras found the net after reaching the scraps from Hooper's effort but the Greek striker had strayed offside.
McGregor fumbled under pressure from Samaras but the ball fell kindly for the Rangers defence before the Scotland keeper smothered another shot from Hooper.
Celtic started the second half in determined fashion, with Kyle Bartley and Bocanegra making vital blocks to thwart the home side and McGregor tipping over a rising strike from Forrest before Ledley made the breakthrough.
The Wales international simply wanted it more as he outmuscled Kirk Broadfoot at the back post to power in a header from Mulgrew's corner kick.
Buoyed by the goal, Celtic had Rangers pinned back, with the visitors defending desperately in and around their penalty box.
And the home fans were none too pleased when Hooper was erroneously flagged offside after bursting through on goal from a Samaras flick near the halfway line.
The game grew increasingly ugly and scrappy as Beram Kayal was stretched off after a crunching tackle from Lee McCulloch and Rangers substitute David Healy was guilty of a dreadful hack at Forrest.
Kyle Lafferty joined Healy in referee Willie Collum's book for a lunge at Adam Matthews, while Anthony Stokes picked up a caution for a spot of retribution on the Northern Irishman.
Rangers launched a series of hopeful balls forward in the closing minutes but Celtic were able to preserve their lead with the minimum of fuss.
Sorry, we were unable to load match stats, please try again.
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +4:40
Kyle Lafferty is caught offside. Indirect free kick taken by Fraser Forster.90:00 +4:33
The ball is delivered by Sasa Papac, Joe Ledley manages to make a clearance.90:00 +4:22
The ball is delivered by Kirk Broadfoot, clearance by Thomas Rogne.90:00 +3:48
Kirk Broadfoot takes the indirect free kick.90:00 +3:48 Booking
Booking Booking for Anthony Stokes for unsporting behaviour.90:00 +3:42
Free kick awarded for an unfair challenge on Kyle Lafferty by Anthony Stokes.90:00 +2:48
Kirk Broadfoot gives away a free kick for an unfair challenge on James Forrest. Charlie Mulgrew takes the free kick.90:00 +1:18
Centre by Kyle Lafferty, Adam Matthews gets a block in.90:00 +0:40
The offside flag is raised against Anthony Stokes. Allan McGregor takes the free kick.89:21
Free kick awarded for a foul by Georgios Samaras on Kirk Broadfoot. Indirect free kick taken by Kirk Broadfoot.88:50
Kirk Broadfoot gives away a free kick for an unfair challenge on Georgios Samaras. Fraser Forster restarts play with the free kick.88:33
The ball is delivered by Kyle Lafferty, clearance by Charlie Mulgrew.86:56
Scott Brown fouled by Nikica Jelavic, the ref awards a free kick. Fraser Forster takes the indirect free kick.85:20
Fraser Forster restarts play with the free kick.85:20 Substitution
Substitution Anthony Stokes replaces Gary Hooper.85:20 Booking
Booking Kyle Lafferty is shown a yellow card.85:14
Kyle Lafferty gives away a free kick for an unfair challenge on Adam Matthews.83:36
Shot by Sung-Yeung Ki from outside the box goes over the net.83:25
Georgios Samaras crosses the ball.
Indirect free kick taken by Charlie Mulgrew.81:50 Booking
Booking Booking for David Healy.81:40
James Forrest fouled by David Healy, the ref awards a free kick.81:25
Sasa Papac sends in a cross, clearance by Scott Brown.80:28
Handball decision goes against Maurice Edu. Free kick taken by Sung-Yeung Ki.80:22
The ball is swung over by Joe Ledley, clearance by Sasa Papac.80:06
The ball is sent over by James Forrest, clearance made by Kyle Lafferty.79:36
Kyle Lafferty concedes a free kick for a foul on Scott Brown. Adam Matthews takes the free kick.78:13 Substitution
Substitution David Healy is brought on as a substitute for Lee Wallace.78:13 Substitution
Substitution (Rangers) makes a substitution, with Maurice Edu coming on for Lee McCulloch.77:21
Adam Matthews delivers the ball, clearance by Carlos Bocanegra.73:07
Adam Matthews restarts play with the free kick.73:07 Substitution
Substitution Sung-Yeung Ki comes on in place of Beram Kayal.73:07
Free kick awarded for a foul by Lee McCulloch on Beram Kayal.72:48
Georgios Samaras gives away a free kick for an unfair challenge on Kyle Bartley. Carlos Bocanegra takes the indirect free kick.71:45
The ball is crossed by Steven Davis, Charlie Mulgrew manages to make a clearance.70:34
Beram Kayal fouled by Nikica Jelavic, the ref awards a free kick. Fraser Forster takes the free kick.70:13
Overhead kick right-footed shot by Nikica Jelavic. Save by Fraser Forster.69:45
Gregg Wylde takes the outswinging corner, clearance made by Charlie Mulgrew.69:37
Centre by Kyle Bartley, clearance by Adam Matthews.69:23
Free kick awarded for an unfair challenge on Lee McCulloch by Georgios Samaras. Free kick taken by Carlos Bocanegra.68:51
Effort on goal by Nikica Jelavic from just inside the box goes harmlessly over the target.68:10
The referee blows for offside. Allan McGregor takes the indirect free kick.68:06
Beram Kayal delivers the ball.67:48
Outswinging corner taken from the left by-line by Charlie Mulgrew.66:38
Steven Davis gives away a free kick for an unfair challenge on Charlie Mulgrew. Charlie Mulgrew has an effort direct from the free kick, save made by Allan McGregor.65:43
Indirect free kick taken by Charlie Mulgrew.65:43 Substitution
Substitution Gregg Wylde joins the action as a substitute, replacing Sone Aluko.65:43
Nikica Jelavic is flagged offside by the assistant referee.64:39
Nikica Jelavic gives away a free kick for an unfair challenge on Victor Wanyama. Charlie Mulgrew takes the indirect free kick.63:50
Inswinging corner taken from the right by-line by Charlie Mulgrew, Victor Wanyama has a headed effort at goal from close in which goes wide left of the goal.63:37
A cross is delivered by Scott Brown, Carlos Bocanegra makes a clearance.63:30
The ball is swung over by Georgios Samaras.63:08
Kirk Broadfoot crosses the ball, clearance by Thomas Rogne.61:19
The assistant referee signals for offside against Gary Hooper. Carlos Bocanegra restarts play with the free kick.60:20
Nikica Jelavic is adjudged to have handled the ball. Fraser Forster takes the indirect free kick.59:58
Foul by Victor Wanyama on Lee McCulloch, free kick awarded. Free kick taken by Carlos Bocanegra.59:05
Beram Kayal takes the direct free kick.59:05 Booking
Booking Carlos Bocanegra booked.58:55
Gary Hooper fouled by Carlos Bocanegra, the ref awards a free kick.57:34
Beram Kayal challenges Lee McCulloch unfairly and gives away a free kick. Carlos Bocanegra restarts play with the free kick.57:00
Gary Hooper challenges Carlos Bocanegra unfairly and gives away a free kick. Carlos Bocanegra restarts play with the free kick.56:05
Effort on goal by Scott Brown from just inside the box goes harmlessly over the target.55:26
The ball is swung over by James Forrest, Sasa Papac manages to make a clearance.51:49
Charlie Mulgrew provided the assist for the goal.51:49 Goal scored
Goal! - Joe Ledley - Celtic 1 - 0 Rangers Joe Ledley grabs a headed goal from deep inside the penalty box. Celtic 1-0 Rangers.51:38
Inswinging corner taken by Charlie Mulgrew from the right by-line,51:18
Drilled left-footed shot by James Forrest. Allan McGregor makes a save.50:18
Sasa Papac produces a cross, Adam Matthews manages to make a clearance.49:32
Corner taken by Charlie Mulgrew.49:23
James Forrest produces a cross, Kyle Bartley manages to make a clearance.48:11
Inswinging corner taken left-footed by Sone Aluko, Charlie Mulgrew manages to make a clearance.47:21
Unfair challenge on Steven Davis by Beram Kayal results in a free kick. Sasa Papac takes the free kick.45:01
The referee gets the second half started.45:00 +0:12 Half time
Half Time The referee calls an end to the first half.44:56
Sone Aluko crosses the ball, Charlie Mulgrew makes a clearance.41:19
The ball is sent over by Charlie Mulgrew, Kirk Broadfoot makes a clearance.40:43
Foul by Kyle Bartley on Georgios Samaras, free kick awarded. Charlie Mulgrew takes the direct free kick.39:35
Lee Wallace challenges Beram Kayal unfairly and gives away a free kick. Free kick taken by Thomas Rogne.39:08
James Forrest takes a shot. Kyle Bartley gets a block in.37:25
Free kick awarded for an unfair challenge on Scott Brown by Steven Davis. Fraser Forster restarts play with the free kick.35:53
Unfair challenge on Nikica Jelavic by Thomas Rogne results in a free kick. Nikica Jelavic fires a strike on goal direct from the free kick.35:17
Nikica Jelavic concedes a free kick for a foul on Charlie Mulgrew. Thomas Rogne takes the indirect free kick.34:42
James Forrest produces a left-footed shot from inside the area that clears the crossbar.34:15
Gary Hooper takes a shot. Allan McGregor makes a comfortable save.33:39
Nikica Jelavic gives away a free kick for an unfair challenge on Charlie Mulgrew. Fraser Forster restarts play with the free kick.33:27
Gary Hooper crosses the ball, clearance made by Kyle Bartley.32:13
Joe Ledley challenges Kyle Lafferty unfairly and gives away a free kick. Indirect free kick taken by Kirk Broadfoot.31:57
A cross is delivered by Adam Matthews, clearance made by Carlos Bocanegra.31:47
A cross is delivered by Gary Hooper, clearance made by Kyle Bartley.30:52
Unfair challenge on Joe Ledley by Kyle Lafferty results in a free kick. Free kick crossed by Charlie Mulgrew.29:51
Corner taken by Charlie Mulgrew from the left by-line, clearance made by Kyle Lafferty.29:00
Sasa Papac challenges Scott Brown unfairly and gives away a free kick. Charlie Mulgrew crosses the ball from the free kick left-footed from right channel, clearance by Kirk Broadfoot.27:01
Sone Aluko delivers the ball, blocked by Joe Ledley.25:21
A cross is delivered by James Forrest, Kyle Bartley manages to make a clearance. Outswinging corner taken by Charlie Mulgrew from the left by-line, Thomas Rogne takes a shot.22:43
Corner taken left-footed by Sone Aluko, Close range effort by Carlos Bocanegra clears the crossbar.22:32
The ball is swung over by Lee Wallace, blocked by Thomas Rogne.19:54
Georgios Samaras gives away a free kick for an unfair challenge on Lee McCulloch. Indirect free kick taken by Lee McCulloch.19:26
Effort on goal by Kyle Lafferty from just outside the penalty area goes harmlessly over the target.19:19
Centre by Kirk Broadfoot, clearance made by Charlie Mulgrew.18:31
James Forrest takes a shot. Comfortable save by Allan McGregor.16:22
Effort from 25 yards by Gary Hooper. Allan McGregor makes a save. Georgios Samaras is ruled offside. Free kick taken by Allan McGregor.15:46
Effort on goal by Scott Brown from 12 yards. Save by Allan McGregor.13:49
Kyle Bartley challenges Georgios Samaras unfairly and gives away a free kick. Charlie Mulgrew takes the free kick.10:31
The assistant referee flags for offside against Kyle Lafferty. Free kick taken by Fraser Forster.9:54
The ball is crossed by Adam Matthews.8:23
Unfair challenge on Adam Matthews by Sone Aluko results in a free kick. Direct free kick taken by Charlie Mulgrew.8:13
Georgios Samaras takes a shot. Blocked by Kirk Broadfoot.7:30
Corner taken by Charlie Mulgrew, Lee McCulloch manages to make a clearance.6:27
Outswinging corner taken by Lee McCulloch from the right by-line played to the near post, Joe Ledley makes a clearance.6:07
Centre by Sone Aluko, Lee Wallace has a headed effort at goal from close in that hits the post.6:01
Sone Aluko delivers the ball, Scott Brown manages to make a clearance.5:54
Kirk Broadfoot produces a cross, Beram Kayal manages to make a clearance.4:28
James Forrest delivers the ball, clearance by Sasa Papac.3:57
Free kick awarded for an unfair challenge on Thomas Rogne by Kyle Lafferty. Free kick taken by Fraser Forster.1:45
Georgios Samaras delivers the ball, Kirk Broadfoot gets a block in.0:28
Steven Davis concedes a free kick for a foul on Victor Wanyama. Free kick crossed by Charlie Mulgrew.0:00
The game begins.
Live data and text provided by our data suppliers