Loading...
The new deal for the 24-year-old Croatian includes an option for a further year, taking it up to 2032 if triggered.
Gvardiol, who had been attracting interest from Spain's Real Madrid and Germany's Bayern Munich, said: "As soon as I found out City wanted to renew my contract, I felt straight away that the move was what I wanted."
He added: "City's fans have been brilliant with me since day one, and the club gives its players absolutely everything. It's the best club in the world to play for."
Gvardiol joined City in 2023 from Germany's RB Leipzig for £77 million (€90 million) and has gone on to make 122 appearances for the club, scoring 13 goals.
City's Portuguese sporting director, Hugo Viana, praised the Croatian defender, saying: "Josko is a player this club believes in enormously. He's young, an outstanding professional, and he's become one of the best defenders in the world."
The defender, who can also operate at left-back, fractured his right leg in a 1-1 draw with Chelsea in January and returned to training in May after more than four months out.