Sergio Aguero came off the bench and struck late to give Manchester City a 2-1 lead over Bristol City in the first leg of their Carabao Cup semi-final.
The Citizens dominated proceedings in the first half, but some wasteful play prevented them from taking the lead.
Bobby Reid put the visitors ahead with a penalty in the 44th minute after John Stones fouled the striker in the box.
Kevin De Bruyne hit back for Man City ten minutes into the second half following a great interplay with Raheem Sterling.
Bristol City were dominated at times, but it looked as if they would hold out for the draw until Aguero’s header in stoppage time.
The two teams will clash in the second leg on January 23 in Bristol.