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.