City's elusive search for their first piece of silverware since 1976 goes on following their dramatic injury-time defeat.
- Manchester United 3-1 Manchester City: As it happened
Sir Alex Ferguson had described City earlier in the season as "noisy neighbours", but it was the red half of Manchester which was in fine voice following a feisty derby.
City, who were 2-1 ahead from the first leg at Eastlands, comfortably held out for 52 minutes against the Carling Cup holders.
In fact, they could twice have stolen ahead as both Carlos Tevez and Micah Richards were both denied by smart saves from Edwin van der Sar.
The deadlock was broken by veteran United midfielder Paul Scholes, who drove home the opening goal from the edge of the penalty area following Michael Carrick's lay-off.
And it got better for United, who doubled their lead in the 71st minute when Carrick found the net with an angled shot from six yards.
It would all have been over not long after when Wayne Rooney missed a sitter by his standards after firing wide from eight yards when it looked as though he could not miss.
United feared that miss might come back to haunt them as looked to be the case when Tevez halved the deficit in the 76th minute with a delightful flick past United's Dutch keeper from Craig Bellamy's low cross.
But with the match heading towards extra time came the dramatic injury-time winner from Rooney, who atoned for that earlier glaring miss.
Rooney was left unmarked six yards out to head home a cross from substitute Luis Antonio Valencia which was followed by a spectacular somersault as it had secured a 4-3 aggregate win and a place in next month's Wembley final against Aston Villa.