Brave Reading went all the wway with Arsenal but in the end a fumble from goalkeeper Adam Federici in extra time handed Arsenal a 2-1 victory and a place in the FA Cup final. Here is how the players rated today.
ADAM FEDERICI: Extra-time howler overshadowed a number of good saves and cost his side dear as he let Alexis Sanchez's shot slip through his legs. 4/10.
CHRIS GUNTER: Forced Sanchez to look inside for space. Gutsy performance - 7.
ALEX PEARCE: Determined and disciplined display at the heart of Reading's defence - 7.
MICHAEL HECTOR: Led the defence with authority and composed in possession - 8.
JORDAN OBITA: Confident performance and helped prevent Aaron Ramsey from converting a golden chance in the last 10 minutes of normal time - 7.
GARATH MCCLEARY: Showed excellent technique to volley home Reading's equaliser - 7.
DANIEL WILLIAMS: A tireless performance in midfield but squandered a good chance to put his side ahead, slicing a volley wide in the second half - 7.
NATHANIEL CHALOBAH: Neat and tidy in possession but faded as the game progressed and was taken off in extra-time- 6.
HAL ROBSON-KANU: Gave the ball away too often but hussled and harried to good effect - 6.
PAVEL POGREBNYAK: Kept Arsenal's defence busy throughout and did brilliantly to dig out a cross for McCleary's equaliser - 8.
JAMIE MACKIE: Linked up play well and made a number of useful runs down the flanks - 7.
JEM KARACAN (For Robson-Kanu, 90): Added some much-needed energy in extra-time - 6.
SIMON COX (For Chalobah, 105): Struggled to make an impact - 5.
YAKUBU (For Pogrebnyak, 111): Struggled to make an impact - 5.
WOJCIECH SZCZESNY: Should have done better to keep out McCleary's equaliser, despite an awkward deflection - 5.
MATHIEU DEBUCHY: Made a number of good runs down the right. Arsenal should have used him more - 7.
PER MERTESACKER: Went close with a header early on but was forced off through injury shortly after the hour - 6.
LAURENT KOSCIELNY: Struggled to contain the awkward Pogrebnyak but made an important block from the striker in stoppage time - 6.
KIERAN GIBBS: Caught out of position for McCleary's equaliser but worked hard down the left flank - 6.
FRANCIS COQUELIN: Occasionally careless in possession but broke up Reading's counter-attacks - 6.
SANTI CAZORLA: Typically composed on the ball but a half-hearted tackle allowed Pogrebynak to set up the equaliser - 6.
AARON RAMSEY: Failed to convert a superb chance in the last 10 minutes of normal time, lashing a close-range finish against the post - 6.
MESUT OZIL: Brilliant ball over the top to set up Arsenal's first goal but faded as the contest progressed - 7.
ALEXIS SANCHEZ: Superb touch and turn before scoring the opener and fired in the winner, albeit fortuitously - 7.
DANNY WELBECK: Quiet. Unable to carve out a chance before being replaced by Olivier Giroud in the second half - 5.
GABRIEL (For Mertesacker, 63): Went close with two headers, the first saved well by Federici, the second nodded over - 6.
OLIVIER GIROUD (For Welbeck, 72): Why not a starter? Lively display off the bench and hit the post in extra-time - 7.
THEO WALCOTT (For Coquelin, 101): Curiously turned down opportunities to drive forward when space opened up for him. Seemed to lack confidence - 6.