The Robins proved to be no pushovers for the Premier League giants, frustrating them with stoic defending and preventing them from creating many clear-cut opportunities.
Even though Pep Guardiola's side dominated possession, a breakthrough was hard to come by, and they had to wait until the 81st minute to open their account for the night finally.
Cheltenham switched off during the match's final moments but deserve all the plaudits for a Herculean effort. Whereas for Manchester City, they're up next against Swansea City in the fifth round.
Manchester City Player Ratings vs. Cheltenham Town
Zack Steffen - 7/10
It wasn't as easy a night as he must've thought it would be, but Steffen, nevertheless, came through. He stood firm when Cheltenham appeared to threaten in the first half and, even after conceding to May, didn't wilt.
Taylor Harwood-Bellis - 7/10
The 18-year old was back in the line-up for another cup game. Even though it was his best performance, Harwood-Bellis was committed to helping out defensively, especially in the first-half when Cheltenham threw the kitchen sink.
Eric Garcia - 6/10
His days at Manchester City are numbered as Barcelona are set announce his signing very soon, but that didn't deter the Spaniard from giving his best tonight. He completed 93% of his passes and also made two clearances and interceptions.
Aymeric Laporte - 7/10
Sluggish initially, but Laporte found his footing soon. He often drove forward to get the ball to the attackers too. He registered a 95% pass completion rate, won six defensive aerial duels, made four clearances, and three tackles. Not bad.
Benjamin Mendy - 6/10
While he sure drove forward at will, very little came out of it. Mendy even saw a rasping shot thwarted on the line by Ben Tozer.
Ferran Torres - 6/10
Not the greatest night for the young Spaniard but there were flashes of his brilliance. Also topped his evening by scoring Manchester City's third goal.
Fernandinho - 6/10
Following a poor first-half which saw the Brazilian overrun in the midfield by Cheltenham, Fernandinho regained his ground. He even set up Jesus for Manchester City's winner with a superb over-the-top cross.
Tommy Doyle - 6/10
Tidy in possession and promising with set-piece deliveries, Doyle will surely be in Guardiola's plans very soon.
Riyad Mahrez - 6/10
A poor night for the otherwise irresistible Algerian as he failed to create many chances for his side and never really threatened Cheltenham directly either.
Gabriel Jesus - 7/10
Jesus missed two big chances in the match but redeemed himself eventually by netting Manchester City's late winner.
Phil Foden - 7/10
A missed chance earlier on in the game seemed to spur Foden on as he took over the creative mantle of his side and sprung big opportunities for his teammates. He also instigated Manchester City's resurgence with an equalizer.
Ilkay Gundogan - 7/10
He replaced Doyle in the 68th minute and assisted Torres for the third and the final goal.
Ruben Dias - 6/10
Dias shored up the backline after May's goal and ensured there aren't any late drama.
Joao Cancelo - 6/10
Just four minutes after stepping onto the field, the Portuguese full-back assisted Jesus for the second goal by lifting an accurate ball over the Cheltenham defense.