Paul Scholes ended Arsenal's hopes of the treble and a third successive FA Cup triumph with a first-half winner.
Scholes fired home Ryan Giggs' cross from close range after 31 minutes to seal an FA Cup final place against either Sunderland or Millwall.
Arsenal and Manchester United started without Thierry Henry and injured Ruud van Nistelrooy at Villa Park.
Edu and Patrick Vieira hit the woodwork for Arsenal while Roy Carroll saved from Dennis Bergkamp and Kolo Toure.
But United held Arsenal in their grip in the second half, despite the introduction of a host of attackers, wrecking their rivals' hopes of repeating their 1999 feat of winning the league, FA Cup and Champions League.
It means United travel to Cardiff for the final with hopes of salvaging their season with silverware.
Arsene Wenger, meanwhile, will turn his attention to the Champions League quarter-final against Chelsea on Tuesday and maintaining their lead in the Premiership.
Arsenal's talisman Henry was restricted to a substitute's role, while Van Nistelrooy was ruled out by a knee injury.
3 mins: Edu strikes the bar from 18 yards
31 mins: Paul Scholes puts Man Utd ahead
45 mins: Patrick Vieira heads against the post
And the Gunners almost started in sensational fashion as they did everything but score in the third minute.
Carroll dived at Bergkamp's feet as he raced clear, and from the rebound Wes Brown was forced to head the Dutchman's shot off the line.
The resulting corner saw Edu chip on to the bar with Carroll beaten, only for the goalkeeper to recover miraculously to block Kolo Toure's header.
Arsenal were dominating the opening stages, and Robert Pires should have put them ahead after 24 minutes, heading over an open goal from Bergkamp's cross.
Pires was then fortunate to escape a red card for flooring Gary Neville before United took the lead.
United's confidence was rising, but Arsenal almost equalised on the stroke of half-time when Vieira's header glanced off the outside of a post.
Arsenal, inevitably, stepped up the pace after the interval but United held firm at the back.
Hot-headed Gunners goalkeeper Lehmann was lucky not to be sent off after 51 minutes when he inexplicably got involved with Cristiano Ronaldo, pushing the Portuguese teenager to the ground.
And it was no surprise when Wenger made a double substitution after 57 minutes, sending on Jose Antonio Reyes for Jeremie Aliadiere and Henry for the disappointing Pires.
But this time there was no brilliance from Henry and United ended Arsenal's 18-match unbeaten FA Cup run stretching back to their defeat in the 2001 final against Liverpool in Cardiff.
Arsenal: Lehmann, Lauren, Campbell, Toure, Clichy, Ljungberg,
Vieira, Edu (Kanu 76), Pires (Henry 57), Bergkamp,
Aliadiere (Reyes 57).
Subs Not Used: Keown, Stack.
Booked: Pires, Lehmann, Toure, Lauren.
Man Utd: Carroll, Gary Neville, Brown, Silvestre, O'Shea,
Ronaldo (Bellion 84), Fletcher, Keane, Scholes, Giggs,
Solskjaer (Phil Neville 75).
Subs Not Used: Butt, Howard, Djemba-Djemba.
Referee: G Barber (Hertfordshire).