Goalflashes and major incidents (all times BST):
2136: FULL-TIME Villarreal 0-0 Arsenal (agg 0-1)
Arsenal have done it - Arsene Wenger's side will play in Arsenal's first European Cup final, where they will play either Barcelona or AC Milan on the 17 May in the Stade de France.
The Gunners lived on their nerves throughout the game, no more so than when Jens Lehmann saves Juan Riquelme's penalty in the 89th minute.
2134: Three added minutes are signalled as the game enters stoppage time. Juan Riquelme's penalty miss has knocked the stuffing out of the Villarreal fans as a hush descends on the El Madrigal stadium.
2133: Great drama as Jens Lehmann saves Juan Riquelme's penalty - throwing himself to his left to save the Argentine's poorly placed spotkick.
2132: Villarreal win a penalty in the final two minutes as Jose Mari is ruled to have been fouled by Gael Clichy.
2131: Kolo Toure throws himself at the ball to block a Diego Forlan shot.
2129: Villarreal's Guillermo Franco goes to ground in the box as he desperately tries to win a penalty.
2128: Arsenal are desperately close now - just five minutes to go in the El Madrigal stadium.
2126: Villarreal have begun to lose their composure and are starting to concede silly free-kicks.
2125: Villarreal make their last substitution in one last bid to change the game as Roger replaces Rodolfo Arruabarrena.
2123:Ten minutes left in the game as Fredrik Ljungberg makes a surging run into the Villarreal area.
2119: Villarreal have lost some of the previous zip and Arsenal are looking very comfortable defensively.
2115: Fifteen minutes to go and Arsenal are edging closer to the Champions League final.
2114: Juan Manuel Pena cynically blocks a run from Fredrik Ljungberg, leaving the Swede writhing in agony.
2113: A second substitution for Arsenal as Robert Pires replaces Jose Antonio Reyes.
2112: Villarreal's Mexican international Guillermo Franco gets the ball in the net but is ruled offside.
2107: Villarreal striker Diego Forlan sidefoots the ball well wide with the goal at his mercy.
2104: Arsenal win three corners in quick succession and on the third set-piece Gilberto gets in a header.
Villarreal make their first change, bringing on forward Jose Mari for defensive midfielder Josico.
2100: Jens Lehmann comes a long way to punch clear a Juan Riquelme free-kick.
2059: Sol Campbell needs treatment for a head wound.
2057: Another close escape for Arsenal as Guillermo Franco heads narrowly wide after reaching Marcos Senna's cross.
2054: Arsenal are finding it almost impossible to threaten Villarreal goalkeeper Mariano Barbosa.
2051: Guillermo Franco continues to trouble Arsenal, going close with a thumping header.
2049: After a brief delay Arsenal kick off the second half.
2048: A protestor delays the start of the second half, running on to the pitch, before handing Thierry Henry a Barcelona shirt.
2032: Jens Lehmann spills a Juan Riquelme free-kick but gathers the ball at the second attempt as the half-time whistle goes. Arsenal are now 45 minutes away from their first ever European Cup final.
2030: Jose Antonio Reyes is injured and Villarreal sportingly kick the ball out.
2029: One minute of stoppage time is signalled.
2025: Guillermo Franco is denied by a superb reaction save from Jens Lehmann as he blocks the Villarreal midfielder's header with his chest.
2023: Rodolfo Arruabarrena claims a penalty after getting tangled up with Alexander Hleb but play is waved on.
2020: Gilberto lashes out at Guillermo Franco, but the offence is missed by referee Valentin Ivanov.
2015: Thirty minutes of the game have gone and Arsenal have yet to really get going. Villarreal are moving the ball well, but have yet to seriously test Jens Lehmann.
2006: Thierry Henry drops back into his own half to make an important tackle on Guillermo Franco.
2001: Jens Lehmann makes his first save of the game, clutching the ball to his chest after Juan Pablo Sorin shoots.
Villarreal playmaker Juan Riquelme is starting to dictate the play for the Spanish team.
2000: Fifteen minutes into the game and Arsenal are coming under increased pressure with Villarreal dominating possession.
1957: A second chance for Guillermo Franco and for the second time the Villarreal midfielder skies his shot.
1955: Gael Clichy makes an immediate impact as he sprints down the Villarreal right, though the Spanish side manage to get the ball away.
1953: Seven minutes into the game and Arsenal have to make a substitution as Matthieu Flamini limps off holding his hamstring.
Flamini is replaced by Gael Clichy, who has not played a game since November.
1951: Kolo Toure reacts quickly to stay close to Diego Forlan and concedes a corner.
1948: The first shot of the game goes to Villarreal, but Guillermo Franco's effort is high and wide.
1946: Alexander Hleb is poleaxed by Quique Alvarez's heavy tackle.
1945: Arsenal's semi-final second-leg against Villarreal is underway with the Spanish side kicking off.
1827: Arsenal make two changes from the side that beat Villarreal 1-0 in the first-leg at Highbury as Jose Antonio Reyes replaces Robert Pires, and Sol Campbell returns for Philippe Senderos.
Reyes had missed the first-leg through suspension while Campbell comes in for his first Champions League appearance since last November.
Villarreal: Barbosa, Venta, Pena, Alvarez, Arruabarrena, Riquelme, Josico, Senna, Sorin, Forlan, Franco.
Arsenal: Lehmann, Eboue, Toure, Campbell, Flamini, Hleb, Fabregas, Gilberto, Ljungberg, Reyes, Henry.
Referee: Valentin Ivanov (Russia)