Pemain asal Norwegia itu mengakhiri prosesnya dengan sebuah gol pada menit ke-76, setelah gol pembuka Rodri di babak pertama disusul oleh tendangan Bernardo Silva tak lama sebelum gol ketiga.
Gol telat Haaland membuat ia kini memegang rekor sebagai pemain Premier League dengan gol terbanyak dalam satu musim di semua kompetisi.
Kemenangan City atas juara Eropa enam kali – dan mantan klub asuhan manajer Pep Guardiola – memberikan pernyataan yang kuat saat mereka berupaya memenangkan trofi kontinental yang didambakan untuk pertama kalinya.
Bos Bayern Thomas Tuchel, yang merencanakan kemenangan Chelsea di final tahun 2021 atas City, kali ini tidak memiliki jawaban karena City secara bertahap kehilangan kendali dan kemudian menyelesaikannya dengan penuh gaya.
Kedua tim bermain dengan baik di babak pertama yang dimainkan di tengah hujan lebat.
City tampak unggul dan, dengan Silva yang lincah, mereka menciptakan beberapa momen awal yang mengkhawatirkan di kotak penalti Bayern tetapi tim tamu segera menguasainya.
Mengambil keuntungan dari permainan City dengan mempertahankan penguasaan bola, Bayern dengan sabar mencoba membuka peluang dan mereka mendapatkan peluang serius pertama ketika tembakan Alphonso Davies melebar.
Peluang pertama City datang ketika kiper Yann Sommer bertahan terlalu lama dan hampir membiarkan Haaland yang berbahaya menggigitnya namun bola dibelokkan melebar.
City menciptakan pembukaan yang lebih konvensional ketika Ilkay Gundogan dan Jack Grealish bekerja sama untuk memberikan umpan kepada Haaland tetapi upaya sang striker masih lemah.
Gol pembuka City pada menit ke-27 terjadi dengan momen spektakuler setelah Ruben Dias melakukan blok bagus untuk menggagalkan upaya Jamal Musala di sisi lain.
Bola disalurkan secara efisien ke depan dan Rodri melepaskan tendangan melengkung indah dengan kaki kirinya dari luar kotak penalti.
City hampir meraih gol kedua ketika bola jatuh ke tangan Gundogan setelah Grealish dan Sommer bertabrakan tetapi, yang luar biasa dari posisinya di tanah, sang kiper menggagalkan kapten City itu dengan sepatu botnya.
Terlepas dari kekuatan serangan City, mereka perlu bertahan dengan baik untuk memukul mundur Bayern.
Nathan Ake tampil impresif di sisi kiri dari empat bek, namun mantan pemain City Leroy Sane berhasil melepaskan tembakan dari jarak jauh pada masa tambahan waktu babak pertama.
Tendangan melengkungnya melebar namun ia nyaris mencetak gol setelah babak kedua dimulai ketika Ederson perlu melakukan penyelamatan rendah di sisi kirinya.
City meningkatkan tekanan dan serangkaian kesalahan yang dilakukan lini belakang Bayern memberi Haaland peluang untuk mencetak gol tetapi Joshua Kimmich membloknya.
Sommer kemudian dipanggil untuk menyelamatkan dari Ake dan Dias.
City sempat dibuat ketakutan ketika Kevin De Bruyne terjatuh dan membutuhkan perawatan lama usai terpeleset. Dia mencoba untuk melanjutkan dan tampak frustrasi ketika dia digantikan segera setelah itu, tetapi Guardiola dengan jelas memutuskan bahwa tidak ada gunanya lagi mempertaruhkan salah satu pemain kuncinya.
Pilihan itu segera dibenarkan ketika City menggandakan keunggulan mereka melalui Silva setelah Grealish melepaskan Haaland dengan backheel yang cerdik. Sang striker menyerang ke depan dan memberikan umpan silang kepada Silva untuk menyundul bola ke tiang jauh.
Haaland kemudian melakukan yang terbaik untuk membuat City memegang kendali penuh atas pertandingan tersebut.
Sekali lagi, dia berada di tempat dan waktu yang tepat untuk meluncur dari jarak dekat setelah John Stones menyundul gawang.
City berusaha keras untuk meraih gelar keempat, namun meskipun hal itu tidak tercapai, mereka akan berangkat ke Jerman minggu depan dengan percaya diri mengamankan tempat mereka di semifinal.