Manchester City have booked their place in the final of the League Cup courtesy of a 4-3 aggregate victory over Everton.
Manuel Pellegrini's side went into tonight's second leg at the Etihad Stadium trailing 2-1, but they came from behind both on the night and in the tie to set up a Wembley showdown with Liverpool on February 28.
The hosts made a positive start to the match, but they found themselves behind in the 18th minute when Everton took the lead against the run of play, Ross Barkley carrying the ball all the way from the halfway line before drilling a 25-yard effort into the bottom corner.
City immediately went in search of an equaliser on the night, with Joel Robles being tested for the first time through Raheem Sterling's effort before Yaya Toure curled a strike of his own over the near post.
Parity was restored shortly afterwards, however, as Sergio Aguero's blocked shot fell to Fernandinho, whose first-time strike from outside the box deflected off Leighton Baines and over Joel to reduce the aggregate deficit to one goal once again.
Aguero came within inches of levelling that aggregate scoreline with just under 10 minutes remaining in the first half when he cut inside and thumped an effort against the post, while Joel was in the right place to keep David Silva's follow-up effort out after Gareth Barry failed to clear his lines.
Despite being on the back foot for much of the opening 45 minutes, Everton created the first clear chance of the second half, and again it came via a quick counter-attack from the visitors.
Silva carelessly gave the ball away inside the Everton half, allowing Barkley to drive forward and find Gerard Deulofeu, whose curling effort was not close enough to the corner and Wilfredo Caballero made the save.
City responded with a chance of their own moments later, however, as half-time sub Jesus Navas played a low ball into the box that Aguero mis-kicked after he had found a yard of space inside the area.
Everton's goal continued to live a charmed life when City hit the woodwork for a second time as Silva's header hit the post and the rebound bounced just out of the reach of Toure on the follow-up.
The Toffees kept City at bay with some last-ditch defending, but their luck eventually ran out with 20 minutes remaining when Kevin De Bruyne put the hosts ahead on the night just four minutes after coming on as a sub.
The goal was not without controversy, however, as replays showed that Sterling had run the ball out of play before cutting it back into the area for De Bruyne to sweep home.
De Bruyne turned provider seven minutes later to complete the turnaround for City, swinging a cross in from the right that Aguero glanced into the bottom corner to give the hosts the lead for the first time in the tie.
Aguero had a chance to kill the tie off once and for all with just a couple of minutes remaining in normal time when he met another De Bruyne delivery with a glancing header, but this time his effort went wide of the target.
The match ended on a low note for the home side, however, as De Bruyne's fruitful cameo was brought to a premature end through a serious-looking injury to his knee that saw him stretchered off, leaving City to see out the tie with 10 men.
See it out they did, however, as Everton missed out on the chance to set up an all-Merseyside final and end their 21-year wait for a major trophy, while Pellegrini will now be looking to become the first City coach to ever win the trophy twice.