"After 18 years as a professional footballer, I took the decision to retire from playing football," the 35-year-old announced on Twitter. "These have been wonderful years that gave me the opportunity to enjoy unique and unforgettable moments.
"Forever I will thank all the people that shared the journey with me."
Zabaleta appeared in over 300 matches after joining City from Espanyol in 2008.
Along with playing an important role in City's title-winning seasons, he also helped the club win the FA Cup and two League Cups.
After ending his nine-year spell at City in 2017, Zabaleta spent his final seasons at West Ham United.
Zabaleta also made 58 appearances for Argentina, including the 2014 World Cup final against Germany.