Sergio Aguero scored a stoppage-time winner as Manchester City beat Bristol City 2-1 in the first leg of the EFL Cup semifinal on Tuesday.
Pre-match talk had focused on the quadruple chances of Pep Guardiola's men, but they had to come from behind at the Etihad Stadium despite the Catalan naming a strong side, Aguero coming off the bench to settle it.
Bristol City – which dumped Manchester United out in the last round – refused to be cowed and Lee Johnson's high-flying Championship team matched the runaway Premier League leader in an enthralling first half, with the visitor going into the interval ahead courtesy of Bobby Reid's penalty.
Manchester City's centre-back pairing were both at fault, Eliaquim Mangala losing possession and John Stones mistiming a tackle in the box on Reid, who picked himself up to convert from the spot.
After a lax first period the host was much brighter and got back on terms 10 minutes into the second half, Kevin De Bruyne beating Frank Fielding with a powerful shot after playing a one-two with Raheem Sterling.
Fielding made a string of saves to keep the sides level but the goalkeeper could not stop Aguero flicking home Bernardo Silva's cross in injury time to give his side a slender advantage, although the Robins will take heart from their display ahead of hosting the second leg in two weeks' time.
City unsurprisingly began on the front foot as Ilkay Gundogan hit an effort wide and Bernardo Silva's deflected shot looped over, but Bristol City did not look overawed.
Johnson's men called Claudio Bravo into action for the first time after 15 minutes, Joe Bryan firing at goal after a driving run but finding the goalkeeper equal to his strike.
Fielding blocked Leroy Sane's cross and then had to tip over a whipped De Bruyne curler as the underdog gave the ball away deep in its own half.
Marlon Pack rifled a drive at Bravo after 32 minutes as the visitor continued to pose a threat.
And after Bailey Wright was perhaps fortunate not to concede a penalty when he appeared to drag down Stones, the second-tier side won a spot-kick of its own.
Stones dived in on Reid after Mangala gave the ball away to Josh Brownhill, the fouled forward tucking away confidently from 12 yards.
Manchester City almost equalised immediately only for Aden Flint to make a miraculous headed clearance from Sterling's goalbound lob.
Fielding rushed out to deny Sterling five minutes after the break, but the he could do little about the equalising goal.
Bravo started an attack that Bristol City never got close to stopping, captain De Bruyne slamming in an unstoppable finish after swapping passes with Sterling.
Sterling, playing as a central striker with Aguero named among the substitutes, turned De Bruyne's cross at Fielding before Guardiola sent for the Argentina international with 20 minutes remaining.
Aguero scored twice in quick succession as his side came from 1-0 down at the break to beat Burnley in the FA Cup on Saturday and he saw to it that the champion-elect repeated the trick.
Silva's cross was perfectly floated for Aguero to flick a header past Fielding and complete the turnaround at the death.
- Ranji Trophy Live Score 2024 Quarterfinals Day 3 Updates: TN looks to increase lead; Karnataka eyes big partnership vs VID
- India vs England Live Score, 4th Test Day 3: Jurel, Kuldeep at crease after Bashir leaves IND hanging
- Arsenal routs Newcastle to keep pace with leader Liverpool
- Former England, QPR forward Stan Bowles dies aged 75
- Foden strike keeps Man City on Liverpool’s heels