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 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 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.
- Celtic should have scored more - Rodgers
- Rangers 'done' by refereeing decision - Gerrard
- 'Win will have bigger impact on Celtic than on Rangers'
Colossus McGregor keeps Rangers in it
This was a bombardment of the Rangers goal, a siege to rival any of the sieges 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 the 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.
Rangers called for a foul when Rogic robbed Ryan Jack of the ball. It was debatable, but their howls were lost in the bedlam that engulfed Celtic Park.
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.
Celtic raise game & Rangers show strides - analysis
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 a 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.
- 8BrownBooked at 10mins
- 49ForrestSubstituted forSinclairat 90+2'minutes
- 18RogicSubstituted forChristieat 77'minutes
- 22EdouardBooked at 37minsSubstituted forGriffithsat 66'minutes
- 1McGregorBooked at 50mins
- 6GoldsonBooked at 85mins
- 31BarisicBooked at 29mins
- 8JackSubstituted forMiddletonat 81'minutes
- 14KentSubstituted forCandeiasat 87'minutes
- 20MorelosBooked at 70mins
- William Collum
- Shots on Target
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.