Pep Guardiola was not impressed with his side's showing before the break with the Blues not forcing Spurs goalkeeper Hugo Lloris into a save until the 39th minute.
That frustration was compounded with two quickfire goals from Dejan Kulusevski and Emerson Royal.
As usual, City enjoyed the majority of possession - controlling the ball for 59% of the match. We completed 540 of 630 passes attempted compared to Spurs' 366 from 446.
In total, we had six shots on target from 16 efforts while Spurs shot within the framework of the goal three times from nine strikes.
Here we'll dig deeper into the stats...
Tale of two halves
It's fair to say we were not at our fluid best in the first half. That was partially through the aggressive defensive tactics of Spurs, with the visitors committing 10 fouls before half-time.
After creating just 0.44 xG in the first half, we upped that to 1.93 in the second period. As the above graphic shows, both sides had their moments but we were much more threatening early in the second period.
In terms of defensive work, Nathan Ake's drive was key. The Dutch defender made six tackles, more than anyone else on the pitch, and three interceptions.
By the end of the game, the Blues had made as many tackles (15), more interceptions (eight) and won more aerial duels (11) than our opponents - proving how much of a fight the fixture turned out to be.
Riyad Mahrez has been crucial for City since domestic football's return following the World Cup. The Algerian winger has started six of our eight matches in that time, scoring six times.
Two of those six strikes came in last night's Man of the Match performance, as well as an assist with his head for Erling Haaland's equaliser.
Our No.26 played 46 passes, sent in three accurate crosses and was efficient in front of goal with two finishes from three efforts.
His xG (expected goals) was 0.70, meaning he greatly outperformed that metric with his two goals - the first from a tight angle on his unfavoured foot and the second a delightful dink over the advancing goalkeeper.
He also had an xA (expected assists) of 1.01, which was more than double the total of the next most productive player on the pitch - Dejan Kulusevski (0.49).
Rico Lewis continues to go from strength to strength. Just 18 years old and 14 games into his senior career, the Bury-born defender cut a senior figure even during the difficult moments last night.
Pep Guardiola has been full of praise for his courage on and off the ball throughout Lewis's fledgling career and last night was no different. As the below graphic shows, Lewis covered a lot of ground.
He was the most fouled player on the pitch, with Pierre-Emile Hojbjerg in particular looking to intimidate him.
It had little impact on Lewis, who continued to ask for the ball and was the fifth most involved player with 73 touches and 54 passes.
Defensively, Lewis' key impact was a decisive block in front of Ederson to keep the score at 2-2 just a few minutes after we had got back on level terms.
He was then quite rightly given a standing ovation when substituted in the closing minutes.
Premier League stats so far this season
City have 42 points from 19 matches having scored 50 goals and conceded 20. We have won 13 matches, drawn three and lost three.
After adding to his total last night, Erling Haaland now has 22 goals and moves seven ahead of nearest competitor Harry Kane.
Kevin De Bruyne remains top of the assist charts too, laying on 10 for his team-mates. Manchester United's Christian Eriksen is next with seven.
Our 50 goals so far is eight more than next highest scorers Arsenal while our seven clean sheets so far sees us in fourth for that metric. We have now completed 12,842 passes, more than 2,000 ahead of Liverpool in second.