Match ends, Celtic 1, Rangers 0.
Steven Gerrard suffered his first defeat in 13 games as Rangers manager as Celtic dominated the first Old Firm game of the season.
Rangers defended manfully but were undone just after the hour when Olivier Ntcham finished off a stunning counter attack for Brendan Rodgers' side.
Celtic struck the woodwork four times as Rodgers' extended his unbeaten Old Firm run to 12 games.
The result means Rangers have now not won a league derby since March 2012.
And it leaves the Ibrox side seventh in the Scottish Premiership with just one win in four games, while Celtic move up to second - three points behind leaders Hearts.
This was a bombardment of the Rangers goal, a siege to rival any of the sieges that Celtic laid down in this fixture last season when their dominance had its reward in buckets of goals.
Celtic eventually got their breakthrough after an hour but, Lord, how they threatened before that gorgeous counter-attack was finished off by Ntcham.
The visitors were fortunate early on when Allan McGregor, an utter colossus in the Rangers goal, escaped punishment when he flicked his boot into Kristoffer Ajer after two fell to the turf in the six-yard box. That could have been a penalty. It could even have been a red card. It was neither.
Celtic drove on regardless. James Forrest had a long-range shot deflected on to McGregor's crossbar. Within seconds, Mikael Lustig headed on to the bar. In the follow-up, Connor Goldson made a critical tackle on Callum McGregor.
It was relentless from Celtic. Kieran Tierney, terrific all day, swung in a cross for Odsonne Edouard, who should have scored. Instead, McGregor denied him.
That was a recurring theme. Early in the second half, the Rangers goalkeeper made a wondrous save from Ntcham, tipping his drive on to the crossbar. For a third time the woodwork was kind to Rangers.
The goal finally came when Tom Rogic, Edouard and Forrest counter attacked and combined to cut open an incredibly dogged Rangers defence. Forrest's cool pass across goal was turned in by Ntcham. Clinical.
Lustig almost made it two with a glancing header soon after, but Rangers finally came out to play after that.
Craig Gordon saved from Alfredo Morelos, Kyle Lafferty headed past a post and James Tavernier shot wide. That Tavernier chance was a big opportunity to land an almighty sucker-punch, but he could not get his effort on target.
We turned up at Celtic Park wondering if our questions were gong to be answered. Could Celtic raise their game to meet the challenge of their much-changed city rivals? Unquestionably, they did. This was 1-0 going on a whole lot more. These have been difficult weeks for Celtic, but the thunder returned against Rangers.
Save for 10 minutes late in the game, Rangers were out-done. Celtic were excellent. They threw back their shoulders and delivered a performance of real substance.
There was another question, of course. Could Rangers get their act together after the humiliations in this stadium last season? Again, they did, but only in a defensive sense. They have a magnificent goalkeeper in McGregor, two redoubtable centre-backs, and lots of honesty and pile of luck.
The final scoreline flattered them, no doubt about it. They need to find a lot more in attack if they are to kick-on as title challengers. There is no questioning their togetherness and their spirit - huge strides have been made - but their wit going forward is still a work in progress.
They now have five points from a possible 12 in the league. One win from four. Gerrard has already done a lot, but has much yet to do.
Match ends, Celtic 1, Rangers 0.
Second Half ends, Celtic 1, Rangers 0.
Substitution, Celtic. Scott Sinclair replaces James Forrest.
Attempt missed. James Tavernier (Rangers) right footed shot from the right side of the box misses to the left.
Substitution, Rangers. Daniel Candeias replaces Ryan Kent.
Attempt saved. Callum McGregor (Celtic) left footed shot from outside the box is saved in the top right corner.
Connor Goldson (Rangers) is shown the yellow card for a bad foul.
Ryan Christie (Celtic) wins a free kick in the defensive half.
Foul by Connor Goldson (Rangers).
Foul by Leigh Griffiths (Celtic).
James Tavernier (Rangers) wins a free kick in the attacking half.
Leigh Griffiths (Celtic) hits the right post with a left footed shot from outside the box.
Substitution, Rangers. Glenn Middleton replaces Ryan Jack.
Foul by Ryan Christie (Celtic).
Ryan Kent (Rangers) wins a free kick on the left wing.
Corner, Rangers. Conceded by Dedryck Boyata.
Corner, Rangers. Conceded by Kieran Tierney.
Foul by Dedryck Boyata (Celtic).
Connor Goldson (Rangers) wins a free kick in the attacking half.
Corner, Celtic. Conceded by Nikola Katic.
Substitution, Celtic. Ryan Christie replaces Tomas Rogic.
Attempt blocked. Callum McGregor (Celtic) left footed shot from the left side of the box is blocked.
Attempt missed. Kyle Lafferty (Rangers) header from the centre of the box is close, but misses to the left.
Foul by James Forrest (Celtic).
Ryan Kent (Rangers) wins a free kick on the left wing.
Hand ball by Leigh Griffiths (Celtic).
Alfredo Morelos (Rangers) is shown the yellow card for a bad foul.
Scott Brown (Celtic) wins a free kick in the attacking half.
Foul by Alfredo Morelos (Rangers).
Corner, Rangers. Conceded by Craig Gordon.
Attempt saved. Alfredo Morelos (Rangers) right footed shot from the left side of the box is saved in the top centre of the goal.
Attempt missed. Mikael Lustig (Celtic) header from the left side of the six yard box is close, but misses to the right.
Substitution, Celtic. Leigh Griffiths replaces Odsonne Edouard.
Corner, Celtic. Conceded by James Tavernier.
Dedryck Boyata (Celtic) wins a free kick in the attacking half.
Foul by Alfredo Morelos (Rangers).
Foul by Odsonne Edouard (Celtic).
Ryan Jack (Rangers) wins a free kick in the defensive half.
Goal! Celtic 1, Rangers 0. Olivier Ntcham (Celtic) right footed shot from the centre of the box to the bottom left corner. Assisted by James Forrest.
Foul by Tomas Rogic (Celtic).