The Argentinian joins for a fee thought to be in the region of £6m, becoming the club's third summer signing following last month's arrivals of Fernando and Bacary Sagna.
Caballero previously played under City boss Manuel Pellegrini at Malaga and hopes to challenge Joe Hart for a first-team role in the new season.
"I am very happy, and really looking forward to the start of pre-season and performing well to help the team," he told the club's official website.
"This is a new challenge and a new league for me. I have been doing well in the previous years and my goal is to go on and hopefully perform at the same level for City.
"I know I am coming to a big club with a very good goalkeeper. City already have a great goalkeeper in Joe Hart, but I will try and compete for the no.1 spot. I will do my best in the training sessions."
The 32-year-old set a club record at Malaga after going 480 consecutive minutes without conceding and will link up again with defender Martin Demichelis.
"As for my new team-mates, I have a very good relationship with Martin Demichelis, but I’ve never met Pablo Zabaleta and Sergio Aguero," he said. "It's something I’m looking forward to. For me it is very good to have people from Argentina in the squad because I think it will be very helpful.
"I spoke to Roque Santa Cruz and Demichelis, and they told me that Manchester is a very beautiful city and very welcoming, so that will be great for my family and I can’t wait to enjoy it."