Roma earned a 0-0 draw at Bayer Leverkusen in their Europa League semi-final return leg on Thursday to reach the showpiece match with a 1-0 aggregate win.
The Rome side have now reached back-to-back European finals under coach Jose Mourinho following last season's Europa Conference League title.
The visitors were on the backfoot for the entire game and had to survive intense pressure from the Germans, who missed a lot of chances and also hit the woodwork, as they advanced thanks to last week's 1-0 win in Italy.
They will play the Sevilla in the final on May 31 in Budapest.
It all started well for Leverkusen, looking to reach their first European final in 21 years.
Apart from a second minute chance for Roma's Lorenzo Pellegrini, the hosts had the upper hand in the first half with a dozen efforts on goal compared to their opponents' one.
Moussa Diaby rattled the crossbar with a powerful shot in the 12th minute and Kerem Demirbay's low drive in the 21st was saved by goalkeeper Rui Patricio.
The visitors tried to push up a bit higher in the second half to intercept Leverkusen's attacks earlier but the hosts kept finding ways to create chances.
Demirbay forced another good save in the 67th from Patricio, who thought he was beaten by Sardar Azmoun minutes later only for the Iranian's shot to sail just wide.
Leverkusen, whose last major title dates back to 1993, had 23 efforts on goal but it was Mourinho's Roma that went through even if they had just the one effort on goal in the entire game.
Leverkusen's Demirbay said as cited by Sports Central: 'All that was missing was a goal. 'We did not have that bit of luck. It was bitter not to be rewarded for such a performances. But I am proud of the way we played..