Raheem Sterling gave the Blues the lead before the Magpies levelled shortly after and in the closing minutes, Kevin De Bruyne thumped home a stunning goal – but again the hosts equalised in the time that remained.
All in all, a day of frustration.
City started well in the bright north-east sunshine, bossing possession and pinning Newcastle back in and round their own box.
The hosts defended in numbers and tried to block anything that came into the box.
The closest the Blues came in that opening period was when Gabriel Jesus got into the box before back-heeling towards Riyad Mahrez, but the Algerian was challenged as he was about to shoot, and the chance went begging.
David Silva was gliding around the pitch with typical grace and industry and it was no surprise that he was heavily involved in City taking the lead.
Sterling found Silva on the edge of the box and the skipper skipped past a challenge before being tackled – but the ball immediately rebounded to his feet and his quick-thinking back flick opened up space for Sterling who buried a low shot into the bottom corner.
The joy, however, was short-lived as Newcastle levelled four minutes later as Miguel Almiron broke free on the left before finding Jetro Willems inside the box and with time and space, he buried a low shot past Ederson to make it 1-1.
It was frustrating for the Blues who often faced two banks of five Newcastle players when nearing the hosts’ penalty area but is nothing new.
City were finding it hard to create anything of any note as each attack fizzled out through sheer weight of bodies in the Magpies box.
When the Blues finally did get through the massed defensive blanket on 68 minutes, two chances in quick succession.
First Gabriel Jesus was played in and had just Dubravka to beat but shot straight at the keeper and De Bruyne’s follow-up was also saved.
Phil Foden and Bernardo were then brought off the bench and within a couple of minutes, Bernardo should have put City ahead as Ilkay Gundogan’s persistence paid off and his pass to Bernardo gave the Portuguese a clear sight of goal, but he dragged his shot well wide.
So dominant was City’s possession that it seemed a second goal must surely come sooner or later, but as the clock ticked down, the Blues looked increasingly anxious.
Then, finally eight minutes from time, a goal worthy of winning this or any contest and just reward for City’s patience.
The ball was played to Benjamin Mendy on the left, but his cross was headed out to the edge of the box where De Bruyne chested the ball down before unleashing a spectacular half-volley in off the underside of the crossbar and into the back of the net.
It was a wonderful goal and all the more impressive because of the defenders who were closing in on the Belgian.
But yet again, Newcastle, who had offered little or nothing in the way of attacking intent, won a free-kick on the right of the City box and a simple pass to the edge of the box found Jonjo Shelvey who swept a fine shot past Ederson from 20 yards to make it 2-2.
Incredibly, City should have won it in added time as De Bruyne picked out Sterling in the six-yard box but he Blues’ leading scorer’s attempt to cushion a pass to Gundogan was pounced on by Dubravka.
The whistle went soon after and the champions will feel two points have been dropped at St James' Park.
Star man: Kevin De Bruyne
What a goal and the Belgian never stopped trying.
What it means…
The early kick-off means it’s too early to know the effect of two dropped points against the Magpies.
City’s fixture list doesn’t get any easier with a difficult test at Turf Moor against Burnley on Tuesday evening and then it’s the Manchester derby at the Etihad next Saturday afternoon.
City: Ederson, Walker, Stones, Fernandinho, Mendy, Gundogan, De Bruyne, D Silva (Foden 68), Mahrez Bernardo 68), Sterling, Jesus (Rodrigo 84)
Subs: Bravo, Angelino. Cancelo, Otamendi
Newcastle XI: Dubravka, Manquillo, Fernandez, Clark, Dummett, Willems, Shelvey, Hayden, Almirón, Saint-Maximin (Atsu 80), Joelinton (Gayle 69)
Subs: Schär, Krafth, Darlow, S Longstaff, M Longstaff