Match ends, Manchester City 2, Bristol City 1.
Sergio Aguero scored an injury-time winner as Manchester City came from behind to beat Bristol City in the Carabao Cup semi-final first leg.
The Championship side were excellent, especially in the first half, and led from Bobby Reid's penalty, awarded after John Stones chopped down the Robins player.
But Kevin de Bruyne equalised for the unbeaten Premier League leaders after a one-two with Raheem Sterling.
- 'The world has seen what Bristol City are about' - Johnson and Guardiola praise Championship side
- '8,000 Bristolians walking on cider' - 5 live Football Daily
And as the underdogs looked set to take a draw and an away goal back to Bristol for the second leg, substitute Aguero headed in Bernardo Silva's cross.
But Bristol City - who knocked out their hosts' neighbours Manchester United in the previous round - produced a performance that will give them encouragement for the return at Ashton Gate on Tuesday, 23 January (19:45 GMT).
Heartbreak for brave Bristol City
Lee Johnson's Bristol City have had a season to remember. As well as challenging for promotion to the top flight, they have beaten four Premier League sides on their run to the last four - Watford, Stoke, Crystal Palace and famously United in the quarter-finals.
Impressively in a season where many Premier League sides have adopted defensive tactics against Manchester City, who are yet to lose a domestic game all season, the Robins played some brave, risky attacking football.
Joe Bryan had a shot saved by Claudio Bravo at his near post and then Marlon Pack's 20-yard shot from Oleksandr Zinchenko's clearance was straight at the keeper.
They deserved to lead when Josh Brownhill won the ball off Eliaquim Mangala and played in Reid, who was brought down by Stones' mistimed tackle.
The Robins were more subdued in the second half, but almost scored a famous winner when debutant Liam Walsh fired wide from the corner of the box late on. And he was made to regret that miss all the more when Aguero popped up seconds from the end.
Man City far from vintage - but win again
Pep Guardiola's side are still in contention for four trophies this season, with the Premier League looking all but won given their 15-point lead over Manchester United.
The Catalan named a strong line-up, although he started with no recognised striker and Sterling playing centrally. And for the second time in three days his side came back from 1-0 down to win, having knocked Burnley out of the FA Cup 4-1 on Saturday.
Their early attempts were kept out by solid Robins defending, although they almost led when De Bruyne's shot was tipped over by keeper Frank Fielding.
Then, after Mangala and Stones were both at fault for the visitors' converted penalty, the hosts thought they had levelled only for Sterling's chip over Fielding to be sensationally headed off the goalline by Aden Flint.
But Manchester City have demonstrated a fierce will to win this season and they kept pushing for a goal that eventually came from De Bruyne.
The move started with goalkeeper Bravo, who played the ball to the Belgian near the halfway line. De Bruyne charged towards the box and found Sterling, who played a first-time pass back to the playmaker to belt the ball home from 16 yards out.
As so often this season, Manchester City found a last-minute goal when they needed it, Aguero heading in Silva's cross from close range.
The champions elect are now unbeaten in 33 domestic games, a run stretching back to April.
Man of the match - Aden Flint (Bristol City)
Match stats - Bristol City set attendance record
- Bristol City sold out their allocation of 7,680 - the highest away attendance at Etihad Stadum in its 15-year history.
- Manchester City have reached the final of the League Cup on three of the previous four occasions when winning the semi-final first leg, with the exception being against Manchester United in 2009-10.
- The Citizens are unbeaten in their past 32 games in domestic competition (W26 D6), with their last loss coming against Arsenal in the FA Cup in April 2017.
- The last team from a lower division to lose a League Cup semi-final first leg against Premier League opposition and still qualify for the final was Birmingham City - against Ipswich in 2000-01 (4-2 on aggregate).
- Bristol City have scored more goals than any other team in the League Cup in 2017-18, with 12 of their 17 coming against Premier League opposition.
- Three of Sergio Aguero's five goals in the League Cup have been scored in semi-finals (also against West Ham in January 2014 and Everton in January 2016).
- Kevin de Bruyne has been directly involved in nine goals in eight appearances for Manchester City in the League Cup (six goals, three assists).
- Bobby Reid has scored 10 goals away from home in all competitions this term - only Harry Kane (14), Jack Marriott (13) and Mohamed Salah (11) have scored more among players in the top four tiers.
Both clubs are back in league action this weekend.
Premier League leaders Manchester City go to Liverpool on Sunday (16:00 GMT). Fourth-placed Bristol City are at home to Norwich in the Championship on Saturday, 13 January (15:00 GMT).
- 35ZinchenkoSubstituted forWalkerat 79'minutes
- 17De Bruyne
- 42Y TouréSubstituted forAgüeroat 70'minutes
- 20Bernardo Silva
- 4FlintBooked at 56mins
- 23MagnussonSubstituted forWalshat 72'minutes
- 7SmithBooked at 58mins
- 3BryanBooked at 60mins
- Anthony Taylor
- Shots on Target
Second Half ends, Manchester City 2, Bristol City 1.
Goal! Manchester City 2, Bristol City 1. Sergio Agüero (Manchester City) header from the centre of the box to the centre of the goal. Assisted by Bernardo Silva with a cross.
Attempt missed. Liam Walsh (Bristol City) right footed shot from the right side of the box is close, but misses to the right. Assisted by Jamie Paterson.
Corner, Manchester City. Conceded by Nathan Baker.
Attempt blocked. Kevin De Bruyne (Manchester City) right footed shot from the centre of the box is blocked. Assisted by Ilkay Gündogan.
Attempt blocked. Ilkay Gündogan (Manchester City) right footed shot from outside the box is blocked. Assisted by Raheem Sterling.
Attempt blocked. Leroy Sané (Manchester City) left footed shot from the right side of the box is blocked. Assisted by Bernardo Silva.
Attempt missed. Bobby Reid (Bristol City) right footed shot from outside the box is too high. Assisted by Jamie Paterson with a headed pass.
Corner, Bristol City. Conceded by Eliaquim Mangala.
Foul by Leroy Sané (Manchester City).
Aden Flint (Bristol City) wins a free kick on the right wing.
Substitution, Manchester City. Kyle Walker replaces Oleksandr Zinchenko.
Attempt blocked. Raheem Sterling (Manchester City) left footed shot from outside the box is blocked. Assisted by Sergio Agüero.
Foul by Ilkay Gündogan (Manchester City).
Marlon Pack (Bristol City) wins a free kick in the defensive half.
Attempt blocked. Danilo (Manchester City) right footed shot from the right side of the box is blocked. Assisted by John Stones.
Offside, Bristol City. Aden Flint tries a through ball, but Bobby Reid is caught offside.
Attempt missed. Ilkay Gündogan (Manchester City) right footed shot from outside the box is high and wide to the right. Assisted by Oleksandr Zinchenko.
Substitution, Bristol City. Liam Walsh replaces Hördur Bjorgvin Magnusson.