Bukayo Saka's finish on the stroke of half-time helped ensured Arsenal will play in the Champions League final for the first time since 2006 following a tense evening in north London.
Key moments
8' Alvarez sweeps Simeone cross wide
45' Saka pounces from close range
56' Griezmann forces Raya save
60' Ødegaard sends curler over bar
66' Gyökeres steers Hincapié delivery over
Match in brief: Gunners hold nerve to book place in Budapest
Mikel Arteta's men dominated the early passages of play, but it was the visitors who carved out the opening opportunity with Julián Alvarez sweeping wide from a Giuliano Simeone cross via a swift attack eight minutes in.
As it happened: Arsenal 1-0 Atleti
With the Gunners forced to resort to long-range efforts for much of the first half, the hosts found a breakthrough with the interval approaching. Viktor Gyökeres expertly picked out Leandro Trossard in space to the left of the penalty spot, and the Belgian attacker somehow created the angle to get his shot away in the crowded area. When Jan Oblak could only parry the strike, Bukayo Saka was quickest to turn in the rebound.
Atleti began the second period in purposeful fashion, Antoine Griezmann forcing David Raya into a smart stop with a crisp drive barely ten minutes after the restart.
Both teams made triple substitutions shortly before the hour mark, and it was Arsenal's changes that almost put the game beyond doubt, with captain Martin Ødegaard curling over soon following his introduction and fellow replacement Piero Hincapié teeing up Gyökeres with a pinpoint delivery, but the striker was unable to keep his effort down.
The Londoners, aiming to register a 30th clean sheet of the campaign across all competitions, restricted their opponents to few clear-cut openings in the closing stages to ensure they claimed their place in the Budapest final later this month.
Line-ups
Arsenal: Raya; White, Saliba, Gabriel, Calafiori (Hincapié 58); Rice, Lewis-Skelly (Zubimendi 74); Saka (Madueke 58), Eze (Ødegaard 58), Trossard (Martinelli 83); Gyökeres
Atleti: Oblak; Pubill, Le Normand (Sørloth 57), Hancko, Ruggeri; Simeone (Cardoso 57), Llorente, Koke, Lookman (Molina 57); Griezmann (Baena 66), Alvarez (Almada 66)
PlayStation® Player of the Match
To follow
Joe Terry, match reporter
To follow
Reaction
To follow
Key stats
To Follow
Fantasy star performers
To follow
What's next?
Arsenal will face the winners of the second semi-final between Bayern and Paris in the final at the Puskás Aréna, Budapest, on Saturday 30 May.