An early Ross Barkley goal at the Etihad Stadium put Everton in sight of a Wembley date with rivals Liverpool but City replied through Fernandinho.
Controversy then erupted as Raheem Sterling then appeared to take the ball out of play before teeing up substitute Kevin De Bruyne to level the tie, but Sergio Aguero completed City’s fightback.
The major downside for title-chasing City was the loss of the influential De Bruyne through injury late on, with the Belgian carried off after appearing to get his studs caught in the turf.
That took the shine off City’s achievement but the team could still reflect on an excellent comeback after a compelling cup tie.
“I am very happy, to play a final at Wembley, it is very important,” Pellegrini said.
“We deserved to be in the final, we had just one defeat — that was against Everton with a clear penalty.
“They scored at 1-0 and it was a clear foul. If you think because of that ball [Sterling to de Bruyne], that is not why we won.
“We won because we scored three goals and Everton had just one chance.”
Reflecting on De Bruyne’s injury, Pellegrini added: “It is difficult to know. He is with the doctor, it could be the medial ligament. Tomorrow we will have more news but it is not a nice injury.”
Everton boss Roberto Martinez was predictably furious over De Bruyne’s goal.
He said: “It was a good game of football, we scored the first goal, got in a great position. It was a big call for their second goal, heartbreaking, when you watch the replay it is incredible you don’t get the decision right.
“It is impossible how you describe when you saw a decision once more, so clear and so big, it is heartbreaking.
“I don’t think anyone in the stadium would disagree that goal is the major, major change in the tie.”
After their late push to sell tickets, City tried to stoke up the atmosphere with loud pyrotechnics while fans brought out their 1980s throwback inflatable bananas in their hundreds.
City controlled the majority of possession but Everton looked dangerous on the counter-attack.
It was from such a break the visitors took the lead after 18 minutes. As Aguero appealed for a foul after a tumbling under a Ramiro Funes Mori challenge, Everton quickly surged forward and fed the dangerous Barkley.
City had begun with Yaya Toure playing deep at the base of a midfield diamond, but the Ivorian was caught out of position as Barkley raced into space. Nicolas Otamendi was also outpaced as Barkley reached the edge of the area and fired low past Willy Caballero.
Trailing 3-1 on aggregate, City needed to respond and did so quickly. They looked to supply Aguero at every opportunity and David Silva found him with a clever flick. The Argentinian’s long-range shot was blocked but Fernandinho followed up and fired home via a deflection off Leighton Baines.
Aguero rattled the post with a ferocious effort soon after and Joel Robles produced a brilliant reflex save as Silva pounced on Phil Jagielka’s failed clearance.
Silva became the second City player to hit the woodwork when he headed against the post from a Pablo Zabaleta cross and Toure could not quite reach the rebound.
Everton began to look like a team clinging on as Aguero almost turned in a cross from Sterling and the latter then had a shot blocked.
The goal City’s play warranted, and levelled the tie, came after 70 minutes — but with a huge slice of controversy.
Sterling appeared to do well as he reached the byline to cross for substitute De Bruyne to rifle home — but the ball had gone out of play before it was pulled back by the England forward. None of the officials spotted it and Everton were left to rue their luck.
After being controversially denied a penalty in the first leg — while Sterling himself had a strong shout for a spot-kick turned down in the league match between the clubs a fortnight ago — City took full advantage.
Six minutes later Aguero put City ahead on aggregate with a superb glancing header from a pinpoint De Bruyne cross.
The tension was evident in the closing minutes as players from both sides flew into tackles but City held on, although the loss of De Bruyne was a late blow.
Caballero, Zabaleta, Otamendi, Demichelis, Clichy, Fernandinho, Delph (Jesus Navas 46), Silva (Fernando 80), Toure (De Bruyne 66), Sterling, Aguero.
Robles, Stones (Coleman 78), Jagielka, Funes Mori, Baines, Cleverley, Barry, Deulofeu (Kone 60), Barkley, Osman (McCarthy 60), Lukaku.