Haaland's previous deal was to run to 2027 and included a buyout clause. The Norway striker is now committed to City until 2034.
"I am really happy to have signed my new contract and to be able to look forward to spending even more time at this great club," said Haaland.
"Manchester City is a special club, full of fantastic people with amazing supporters and it's the type of environment that helps bring the best out of everybody.
"I also want to thank (manager) Pep (Guardiola), his coaching staff, my team-mates and everyone at the club as they have all helped me so much in the past couple of years.
“Speaking with the people I spoke with in the end, the hungriness and the support also I’ve been getting for the last couple of years from the board, from all the bosses and from Pep, in the end it was an easy decision and I’m delighted.
“It’s a really welcoming club where you get really good taken care of. You really feel at home here and that’s the first amazing thing.
“Second of all, when I spoke to Pep, the best manager in the world, it’s also a great thing to speak with him and to train and to play under him every single day, to meet him, to get his input on me and how to become a better footballer and to develop even more because he is the best.
“And of course you win, you are here to win trophies, you are here to perform, you are here to be at your best and to deliver at your best.
“That’s also what you have to do because you come here, people expect you to win trophies and that’s what you’re here for.”
Txiki Begiristain, City's director of football, said: "The fact he (Haaland) is signed for so long demonstrates our commitment to him as a player and his love for the club."
Haaland's new deal comes just weeks after manager Pep Guardiola inked a new two-year contract.