The two Manchester rivals started the season in sluggish fashion but have both been in excellent form in the Premier League recently, flying up the table, and carried that confidence into a pulsating clash.
After a trio of goals were ruled out for offside, second-half strikes from unlikely sources – John Stones and Fernandinho – sealed a 2-0 victory in a game full of chances and entertainment, and Pep Guardiola will now take on old rival Jose Mourinho in the later-than-usual final on April 25.
The game started in frantic fashion with City immediately dominating the ball but United threatening on the break; a through-ball in behind set away Marcus Rashford, whose initial effort was not held and rebounded in off Stones only for the linesman’s flag to rule it out for offside.
Moments later, City thought they had scored the opener themselves after a lovely passage of play culminated in the in-form Ilkay Gundogan poking Phil Foden’s cross into the bottom corner, but the German had also strayed beyond the last man.
The chances continued to flow, with Bruno Fernandes testing stand-in goalkeeper Zack Steffen with a brilliant long-range effort that appeared to be curling in, only for the American to claw it out.
In response, City’s own talisman Kevin De Bruyne produced a stunning effort of his own with a venomous strike from the edge of the box that rattled the woodwork, with the first 15 minutes of the semi-final providing more entertainment and chances than the entirety of their goalless league meeting last month.
Midway through the half a third goal was ruled out for offside after Foden raced through on goal and squeezed the ball between Dean Henderson’s legs, before the imperious Ruben Dias was called into action to make a superb block to deny Rashford.
After thinking he had scored an own goal minutes into the first half, Stones opened the scoring for City minutes after the restart, capitalising on some lax defending from United to bundle in Foden’s free-kick at the far post.
That goal saw the visitors start to grab a stranglehold on the match, with Joao Cancelo sending a ferocious drive inches over the bar before Raheem Sterling forced Henderson into a smart stop.
United’s backup goalkeeper was becoming more and more involved and kept the hosts in the tie with a wonderful save to deny Riyad Mahrez, setting up a thrilling finale as Ole Gunnar Solskjaer threw on more attackers and chased an equaliser.
But it was City who struck the killer blow as Fernandinho rifled home a brilliant volley from the edge of the box in the 83rd minute and Guardiola will now go in search of a fourth successive Carabao Cup victory at Wembley in April with only Mourinho’s Spurs standing in his way.