Kevin De Bruyne met with controversy, glory and injury as Manchester City defeated Everton 3-1 on Wednesday to set up a League Cup final showdown with Liverpool.
Everton extended their 2-1 advantage from the first leg when Ross Barkley scored a fine individual goal in the 18th minute, but Fernandinho quickly equalised before substitute De Bruyne levelled the tie and then set up Sergio Aguero to complete a 4-3 aggregate victory in the 76th minute.
Replays, however, suggested that Raheem Sterling had taken the ball beyond the byline before cutting it back for De Bruyne to score and the former Wolfsburg winger finished the match on a stretcher after his knee buckled in a late challenge with Ramiro Funes Mori.
"To play a final at Wembley is very important. I am very happy," said City manager Manuel Pellegrini.
On suggestions De Bruyne's goal should not have stood, he added: "That is not why we won. We won because we scored three goals and Everton had just one chance."
But Everton manager Roberto Martinez said: "Everyone that has seen the replay can clearly see the ball is out of play.
"It's very, very hard to take. If they score three goals in the right way, then you accept it."
City's win deprived Everton of a meeting with Liverpool - who overcame Stoke City on penalties on Tuesday - in what would have been the first all-Merseyside major final since the 1988-89 FA Cup and the first League Cup final to feature the Goodison Park club since 1984.
Pellegrini's side had to come from 3-1 down on aggregate at the Etihad Stadium after Barkley swelled Everton's advantage with a goal that demonstrated both his own brilliance and City's defensive porousness.
The Everton number 20 evaded the sliding Nicolas Otamendi and foxed Fabian Delph with a stylish feint before steering a low shot into City goalkeeper Willy Caballero's bottom-right corner.
Barkley's strike left City needing two goals to stay in the tie, but after Sterling had tested Joel Robles and Yaya Toure had curled over, they halved the aggregate deficit in the 24th minute.
Aguero's shot was blocked by returning Everton skipper Phil Jagielka, but Fernandinho followed in with a right-foot drive that clipped Leighton Baines's heel and left Robles clutching at thin air.
City almost levelled the tie nine minutes before the interval, Aguero thumping a shot against the right-hand upright from outside the box and Sterling seeing his follow-up swatted behind by Robles.
Barkley created a chance for Gerard Deulofeu early in the second half, the Spaniard drawing a save from Caballero with a side-foot shot, but with Jesus Navas on in place of Delph, City had a new outlet on the right flank and they began to bang on the door.
Aguero miscued, uncharacteristically, from a Navas cross, David Silva headed a Pablo Zabaleta cross against the post and Tom Cleverley had to produce a sliding block to thwart Sterling.
Martinez added fresh legs in the form of James McCarthy and Arouna Kone.
Pellegrini responded in the 66th minute by replacing Toure with De Bruyne, City's record £55 million ($78.3 million, 71.9 million euros) signing, and four minutes after coming on the 24-year-old levelled the tie.
Sterling had moved to the left following Navas's entrance and he showed England colleague John Stones a clean pair of heels before pulling the ball back for De Bruyne, who side-footed home.
To the fury of Evertonians on social media, replays showed that the ball had just crossed the line before Sterling played it into the box.
And the mood of those in royal blue plummeted six minutes later when De Bruyne shaped a cross into the box from the right and Aguero glanced a deft header past Robles to send City to Wembley.
However, De Bruyne's night was to end prematurely when he had to be carried off on a stretcher, with Pellegrini suggesting that he had damaged the medial ligament.
Follow Emirates 24|7 on Google News.