Neither side had conceded a goal in the league this season but Ilkay Gundogan opened the scoring for champions City in the fifth minute, ghosting in and catching the Newcastle defence flat-footed before finishing from close range.
As it happened: Newcastle United vs Manchester City
City should have gone two up in the 16th minute when Phil Foden attacked down the right, but he chose to shoot from a tight angle rather than squaring the ball to Haaland and the chance was wasted.
The home side levelled through Miguel Almiron in the 28th minute as he bundled a pinpoint cross from Allan Saint-Maximin into the net before enduring a nervous VAR check that allowed the goal to stand.
Saint-Maximin tormented City full back Kyle Walker and he put Newcastle in position to pull off a huge upset when he set up Callum Wilson to make it 2-1 before halftime.
What a match! #NEWMCI | @NUFC | @ManCity https://t.co/OnSy3zNkao
— Premier League (@premierleague) 1661102922000
A brilliant free kick by Kieran Trippier nine minutes after the break put them 3-1 ahead.
That sparked City into life, however, with Haaland hitting a post before pulling a goal back on the hour mark and Silva converted a glorious pass from Kevin De Bruyne to make it 3-3.
Newcastle’s challenge looked set to come unstuck when Trippier was shown a straight red card for a cynical high trip on De Bruyne, but after a VAR review the decision was overturned and he was given a yellow.
City dominated possession in the final stages but had to settle for a draw that left them second in the table on seven points, two behind leaders Arsenal. Newcastle are sixth on five points.