Pep Guadiola’s men made a bright start and raced into a 15th minute lead with Haaland latching onto Josko Gvardiol’s superb pass to flick us ahead expertly with his first touch of the match, claiming his 51st Champions League goal in his 50th appearance in the competition.
However, just three minutes later, the hosts levelled in spectacular fashion with their first attempt of the evening, as Jordan Teze rifled into the top corner from 20 yards.
Shortly after the half-hour mark, Phil Foden crashed a right-footed effort off the crossbar, before Monaco goalkeeper Philipp Kohn was forced into two smart saves, first from Nico O’Reilly and then from Tijjani Reijnders.
But just before the interval, the prolific Haaland beat Kohn for the second time, directing a sublime header into the bottom corner to restore our lead, propelling him into the top 10 goalscorers in the history of the competition with 52, level with Mohamed Salah.
The French side made a bright start to the second period and their tricky winger Maghnes Akliouche forced Gianluigi Donnarumma into a smart low save, before Mamadou Coulibaly blazed over the bar from a promising position at the edge of the box.
With just under 20 minutes left to play, we stuck the woodwork for the second time, this time through a powerful Reijnders effort, before Haaland’s long-range strike was turned around the post by the sprawling Kohn.
With the clock ticking towards the 90th minute, after a lengthy on-field review by the referee, Nico was controversially penalised for a high boot inside the box and Eric Dier stepped up to level from the spot, forcing us to settle for a point.
View the best images from the draw via our match gallery below.