Jose Mourinho’s Roma will take on perennial Europa League champions Sevilla in the final in Budapest in two weeks’ time.
Roma stoutly defended their 1-0 advantage from the first leg against Bayer Leverkusen to secure the goalless draw they needed while Sevilla defeated Juventus 2-1 after extra-time.
Xabi Alonso’s Leverkusen threw everything at Roma in a bid to level matters on aggregate but the closest they came was a powerful shot from Moussa Diaby in the 12th minute that hit the bar.
Roma are bidding to make it back-to-back European titles after winning the Europa Conference League last season.
A thrilling game in Seville was decided by Erik Lamela’s header five minutes into extra-time.
The Italians took the lead in the 65th minute through Dusan Vlahovic moments after he came off the bench, but six minutes later another substitute, Suso, equalised with a stunning strike.
Sevilla thought they had won it at the end of normal time but Szczesny produced another brilliant save to keep out Youssef En-Nesyri’s header.
The Pole was beaten by Lamela, though, the Argentinian meeting Bryan Gil’s cross with a header into the bottom corner, and, despite Marcos Acuna being shown a second yellow card for time wasting, Sevilla held on to reach a seventh final in 18 years, where they will look to maintain their perfect record.
The Europa Conference League final, meanwhile, will be between West Ham, who claimed a 3-1 aggregate win over AZ Alkmaar, and Fiorentina.
The Italians lost the first leg 2-1 at home to Basel but won 3-1 on the night thanks to Antonin Barak’s goal deep into stoppage time at the end of extra-time.
Nicolas Gonzalez had earlier scored twice for Fiorentina either side of an equaliser from Zeki Amdouni.