Manchester City claimed their place at Wembley for the Carabao Cup Final after seeing off a brave Bristol City side at Ashton Gate.
Goals from Leroy Sane, Sergio Aguero, and Kevin De Bruyne provided the 3-2 victory, that was in no way plain sailing for the Premier League leaders.
Sane broke the deadlock on the stroke of half-time, the German international turning the ball home after some fine work from Bernardo Silva on the right flank.
After the break, City looked to have sealed the tie when they added their second. De Bruyne fed Aguero, who fired a beautiful finish beyond Luke Steele in the Robins' net.
Fifteen minutes later, Lee Johnson's men were given hope; Marlon Pack heading home from a cross to make it 2-1.
With the tie seemingly over, there was more drama yet to come. With 93 minutes on the clock, Aden Flint netted and set Ashton Gate into raptures.
Those dreams were soon shattered, though. De Bruyne, who was the man of the match, set about sealing the deal, and hit the sucker-punch to make it 3-2 on the night, and 5-3 on aggregate to Pep Guardiola's men.