Efter 2-6 i första mötet var det inte mycket som talade för att Roma skulle nå Europa League-final.
Men även om chansen var liten såg man till att bjuda på en underhållande match i andra mötet med Manchester United.
Cavani inledde målskyttet för United i första halvlek och kvitterade även i andra men däremellan hade Roma hunnit med att göra två mål genom Edin Dzeko och Bryan Cristante.
Och det blev inga fler mål från någon spelare i det italienska laget, men trots det lyckades man vinna.
I den 83:e minuten tog bollen på Uniteds Alex Telles och hittade in bakom David De Gea.
3-2 till Roma blev slutresultatet men United gick vidare med totalt 8-5.
– Nu ska vi komma till finalen och vinna den. Edinson gjorde två jättefina mål och hans rörelse och arbete utan bollen är fantastiskt, säger Manchester Uniteds lagkapten Harry Maguire till BT Sport efter matchen.
Därmed ställs United mot Villareal som besegrade Arsenal i den andra semifinalen.
UEFA Europa League
AS Roma
3 - 2
Manchester United
Första halvlek
- 18'Wan-Bissaka
- DarboeSmalling30'
- 39'0 - 1Cavani (Fred)
Halvtid
- 46'WilliamsWan-Bissaka
- 46'TellesShaw
Andra halvlek
- 1 - 1Džeko (Pedro)57'
- 58'Fred
- 2 - 1Cristante (Pellegrini)60'
- 64'MaticPogba
- 68'2 - 2Cavani (Fernandes)
- SantonPeres69'
- Karsdorp72'
- 72'Cavani
- 73'RashfordCavani
- MayoralDžeko76'
- ZalewskiPedro76'
- 3 - 2Telles83'
- Cristante84'
- 84'MataFernandes
- 90'+2'Williams