Adam Federici's extra-time error from Alexis Sanchez's strike gifted Arsenal a 2-1 victory and a place in their second consecutive FA Cup final.
It took Arsene Wenger's side 120 minutes to see off a spirited Reading challenge at Wembley after Sanchez gave the holders the lead just before the break in normal time.
Reading responded after half-time thanks to Garath McCleary’s 54th-minute volley and the Royals gave the Premier League side a real scare during the second half.
Aaron Ramsey could have won it in the dying minutes of normal time but his shot crashed back off the post, while Pavel Pogrebnyak fluffed his lines with just Laurent Koscielny to beat and Jamie Mackie in support.
It meant extra-time and eventual heart-break for Reading as Federici made a mess of Sanchez’s shot to send Arsenal to a record 19th FA Cup final on May 30.
It was the holders who looked bright in the opening stages as they looked to stamp their authority on their Championship opposition and it was their hero from last year’s semi-final, Per Mertesacker, who nearly gave his the perfect start, but Federici got down well to keep out the German’s header at his near post.
Reading were not at Wembley to make up the numbers and they immediately went onto the counter-attack, but Jordan Obita’s shot was straight down the throat of Wojciech Szczesny.
Steve Clarke’s men were certainly up for the fight, putting Arsenal under constant pressure and Mackie thought he was through on goal in the 11th minute only to see the linesman’s flag raised.
Despite Reading’s high work-rate, Arsenal were still creating chances as first Mesut Ozil and then Santi Cazorla missed the target with long-range curling efforts.
They went close again minutes later as Sanchez burst onto Santi Cazorla’s pass, but Federici was quickly off his line to put the Chilean forward off.
However, Arsenal finally made the breakthrough when Ozil picked the ball up 40-yards from goal, before picking out the run of Sanchez with a curling pass. The Chilean took a touch, beat the defender and fired past Federici from close range.
Reading needed a response and it did not take them long to get it as Pogrebnyak picked out McCleary, who beat Szczesny at his near post with a volley.
The Reading supporters were now in full voice and their team responded as Nathaniel Chalobah’s shot forced Szczesny into an uncomfortable save. At the other end Federici was also forced into action as he tipped substitute Gabriel's goalbound header over the bar.
As the game wore on both sets of players started to tire and it was Arsenal finishing normal time the stronger. With just six minutes remaining Ramsey – Arsenal’s extra-time hero in last season’s final – only had to hit the target to seal victory but his shot cannoned back of the post.
With the game stretched Reading also had one final chance to win it in 90 minutes as Pogrebnyak, with the support of Mackie, picked up the ball with only Koscielny to beat but fluffed his lines as the Frenchman made a vital interception.
Arsenal, who were boosted by substitutes Olivier Giroud and Theo Walcott, came on strong in extra-time and Federici was lucky to get away with making a hash of Ramsey’s long-range effort but minutes later he was not as lucky.
Sanchez popped up in the Reading penalty area, cut onto his left foot and fired a tame effort towards goal. Federici was in a good position to make a routine save but cruelly the ball squirmed through his body and just over the line to give Arsenal the advantage.
Reading, who sent on Yakubu in the dying stages, threw everything they could in search of an equaliser but it was the Gunners who held on to book their place in next month’s final where they will defend the trophy they won last season against the winners of Aston Villa’s clash with Liverpool on Sunday.