Kevin De Bruyne inspired Manchester City to the League Cup final as they came from behind to record a 4-3 aggregate win over Everton courtesy of a controversial 3-1 victory at the Etihad Stadium.
City had only once before managed to overturn a first-leg deficit in the tournament - way back in 1976, when they beat Middlesbrough before going on to lift the trophy - and their task of emulating that feat was made all the more difficult by Ross Barkley's fine opening goal.
Manuel Pellegrini's men responded six minutes later through a deflected Fernandinho effort and the hosts twice hit the woodwork inside the first hour through Sergio Aguero and David Silva, while Everton themselves wasted a great chance to regain the lead through Gerard Deulofeu.
The 2013-14 winners controlled the majority of the play without causing undue trouble for Joel Robles, but substitute De Bruyne scored the goal to level the tie just minutes after coming on - though Everton were furious that a goal kick had not been awarded in the build-up.
De Bruyne turned provider six minutes later for Aguero to head in City's third and secure their place at Wembley, where they will face Liverpool, who edged past Stoke City on penalties on Tuesday.
A fine comeback finished on a worrying note for City when De Bruyne left the field on a stretcher in stoppage time with what looks like a serious knee injury.
City began on the front foot as they looked for an early leveller in the tie, though one surging run by Deulofeu gave the hosts a warning of Everton's counter-attacking threat.
And Roberto Martinez's side netted the opening goal through a similar break after 18 minutes, as Barkley turned away from Nicolas Otamendi's challenge, drove towards the edge of the box and rifled a low shot into Willy Caballero's bottom-right corner.
City did not have long to wait before finding an equaliser, however. Aguero's effort from 20 yards was blocked and Fernandinho's first-time shot from the rebound took a big deflection off Leighton Baines and nestled into the corner of Robles' net, though the visitors were aggrieved that Raheem Sterling was not flagged for offside as he tried to move out of the path of the ball.
Aguero came within inches of a second for City, rattling the far post with a fierce effort from the edge of the area, and Robles reacted well to keep out Silva's rebound after Gareth Barry had failed to clear, though Delofeu spurned a glorious chance to restore Everton's two-goal cushion just after the break as he shot tamely at Caballero from inside the area.
Aguero sliced a Jesus Navas cross wide before City hit the woodwork again - this time, Silva's header across goal came back off the inside of the post and Yaya Toure somehow failed to connect with the rebound inside the six-yard box.
Pellegrini brought on De Bruyne for Toure in a bid to liven up City's attack and the Belgium international drew City his side level in the tie within four minutes of his introduction, albeit in controversial circumstances. Sterling raced past John Stones and, though the ball had clearly crossed the goal line before he cut back for De Bruyne to slot home, referee Martin Atkinson allowed the goal to stand.
The Etihad Stadium was buoyant and the home fans were given further cause to celebrate on 76 minutes, as De Bruyne's cross from the right was glanced home superbly by Aguero, who stole in between the Everton centre-backs unopposed.
Aguero glanced another late header just wide of the far post, but City kept a spirited Everton at arm's length in the closing moments, before De Bruyne had to be taken from the pitch on a stretcher after appearing to suffer damage to his right knee.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.