Son Heung-min sent Spurs ahead in the sixth minute of the match, but he then turned into the back of his own net three minutes later, with the two teams level at 1-1 after a fast start.
The reigning champions managed to find another gear late on, and Jack Grealish registered in the 81st minute to make it 3-2 to Pep Guardiola's side, but Kulusevski headed a late equaliser for the North London outfit.
Man City, who have now drawn their last three games in England's top flight, remain third in the table, three points off leaders Arsenal, while Tottenham move back into fifth, ending a three-game losing run in the process.
Less than a minute later, Spurs took the lead, with a fast counter-attack from a Man City corner leading to Son breaking into the home side's box and firing the ball under Ederson.
The champions were not behind for long, though, as Son turned into the back of his own net in the ninth minute after Haaland had made the slightest of contacts on a brilliant free kick from Julian Alvarez.
Haaland had a golden chance to make it 2-1 to Man City in the 13th minute when he was picked out by Bernardo Silva inside the box, but the Norway international somehow missed the target.
Spurs had an excellent opportunity of their own in the 23rd minute when Brennan Johnson showed brilliant pace in a wide position before delivering low into the Man City box, but Ruben Dias managed to turn behind his own goal under pressure from Son, who looked on course to register once again from close range.
Doku then smashed one against the crossbar in the 30th minute after excellent work in a wide area, with the summer arrival navigating his way into the Spurs box before crashing the ball off the woodwork.
Man City managed to register less than a minute later, though, and it was superb football from the champions, with a clever move involving Haaland, Doku and Alvarez leading to Foden picking out the bottom corner from close range.
Alvarez was next to come close for the Citizens, striking one low against the post in the 35th minute, before Haaland swept one over the crossbar less than a minute later, with Man City threatening to run riot as Spurs desperately looked to stay in the contest.
As it transpired, Tottenham were still in it at the break, with the score just 2-1 to the hosts, and Vicario prevented it from becoming 3-1 moments into the second period, producing a wonderful save to keep out a Bernardo strike.
Ederson made a smart save to deny Destiny Udogie in the 63rd minute, with the defender racing through on goal, but the offside flag was raised shortly after.
Spurs were comfortable at the Etihad Stadium, with Man City finding it difficult to get going in the second period, and the visitors were still very much in the contest heading towards the final 25 minutes of action.
Ange Postecoglou's side managed to level the scores in the 68th minute, with Lo Celso smashing into the back of the net off the inside the post, with Ederson unable to keep it out despite getting a touch on the ball.
Lo Celso came close to scoring a second in the 71st minute when he again struck a powerful effort towards goal, but it took a touch off Grealish and flew wide of the post.
Rodri clipped one over the Tottenham goal in the 75th minute after meeting a cross from Rico Lewis, with Man City just starting to enjoy some possession inside the Spurs half after a period of struggle.
Man City were able to regain the lead in the 81st minute, and the goal came from Grealish, who swept home from inside the box after Haaland had picked out his teammate with a clever cross.
Spurs were back level in the 90th minute, though, with Kulusevski heading a cross from Johnson into the back of the net off the underside of the crossbar to spark wild celebrations in the away end at the Etihad Stadium.
Grealish looked to have a chance to win it for the hosts in the final moments, but the referee did not play the advantage when Haaland was fouled, which allowed Spurs to get men behind the ball to defend a free kick inside the Man City half, and there were to be no further goals in Manchester.
Tottenham will be aiming to build on the positive result when they host West Ham United on Thursday evening, while Man City are back in action away to Aston Villa on Wednesday night.No Data Analysis info