On 8 July 2014, Caballero signed a three-year deal with Manchester City, for a fee believed to be in the region of £6 million excluding add-ons.
He reunited at his new club with former Málaga manager Manuel Pellegrini, and his competitive debut came on 10 August in the 2014 FA Community Shield, playing the full 90 minutes in a 0–3 loss to Arsenal at Wembley Stadium; a week later, in the Premier League opener, he was an unused substitute at Newcastle United.

Caballero's second official appearance for City occurred on 24 September 2014, in the 7–0 home routing of Sheffield Wednesday for the Football League Cup.
He made his first league appearance away against Hull City three days later, relegating longtime incumbent Joe Hart to the bench in a 4–2 win.

Caballero's third league match was on 26 September 2015, a 1–4 defeat at Tottenham Hotspur which was described as 'a day to forget'.
Throughout the season, he was first-choice in the League Cup, receiving criticism in the national press before the final following the 1–5 loss to Chelsea in the FA Cup where he was adjudged to be at fault for two goals; in the decisive match at Wembley Stadium, he saved three attempts in the 3–1 penalty shootout triumph against Liverpool, and Pellegrini subsequently said he would rather lose the match to keep his word, whilst several pundits added that both player and manager deserved an apology with some remarking the performance was a lesson in loyalty.

Following the appointment of manager Pep Guardiola in the 2016 off-season, Caballero became the starter over Hart.
Soon after, with the signing of Claudio Bravo, he returned to his backup role.

On 19 October 2016, Caballero appeared as a substitute in a 0–4 defeat by Barcelona at the Camp Nou in the group stage of the UEFA Champions League.
After replacing the red-carded Bravo in goal, he saved a penalty from Neymar in the 87th minute of the match.
Two weeks later, he deputised for the suspended Bravo in the 3–1 home win over the same opponent for the same competition.

On 1 February 2017, Caballero replaced Bravo.
On his return to the starting XI, he kept a clean sheet in a 4–0 win over West Ham United at the London Olympic Stadium.
Late into the month, in a 5–3 Champions League round of 16 win over Monaco, he saved a penalty from Radamel Falcao.

On 25 May 2017, it was announced Caballero would leave the club on the expiry of his contract, which occurred on 30 June.
On 8 July 2014, Caballero signed a three-year deal with Manchester City, for a fee believed to be in the region of £6 million excluding add-ons. He reunited at his new club with former Málaga manager Manuel Pellegrini, and his competitive debut came on 10 August in the 2014 FA Community Shield, playing the full 90 minutes in a 0–3 loss to Arsenal at Wembley Stadium; a week later, in the Premier League opener, he was an unused substitute at Newcastle United.
Caballero's second official appearance for City occurred on 24 September 2014, in the 7–0 home routing of Sheffield Wednesday for the Football League Cup. He made his first league appearance away against Hull City three days later, relegating longtime incumbent Joe Hart to the bench in a 4–2 win.
Caballero's third league match was on 26 September 2015, a 1–4 defeat at Tottenham Hotspur which was described as 'a day to forget'. Throughout the season, he was first-choice in the League Cup, receiving criticism in the national press before the final following the 1–5 loss to Chelsea in the FA Cup where he was adjudged to be at fault for two goals; in the decisive match at Wembley Stadium, he saved three attempts in the 3–1 penalty shootout triumph against Liverpool, and Pellegrini subsequently said he would rather lose the match to keep his word, whilst several pundits added that both player and manager deserved an apology with some remarking the performance was a lesson in loyalty.
Following the appointment of manager Pep Guardiola in the 2016 off-season, Caballero became the starter over Hart. Soon after, with the signing of Claudio Bravo, he returned to his backup role.
On 19 October 2016, Caballero appeared as a substitute in a 0–4 defeat by Barcelona at the Camp Nou in the group stage of the UEFA Champions League. After replacing the red-carded Bravo in goal, he saved a penalty from Neymar in the 87th minute of the match. Two weeks later, he deputised for the suspended Bravo in the 3–1 home win over the same opponent for the same competition.
On 1 February 2017, Caballero replaced Bravo. On his return to the starting XI, he kept a clean sheet in a 4–0 win over West Ham United at the London Olympic Stadium. Late into the month, in a 5–3 Champions League round of 16 win over Monaco, he saved a penalty from Radamel Falcao.
On 25 May 2017, it was announced Caballero would leave the club on the expiry of his contract, which occurred on 30 June.
Willy Caballero