Ukrainske Andrej Sjevtsjenko sendte Milan i ledelsen halvannet minutt på overtid i første omgang.
Andrej Sjevtsjenko jubler etter å ha gitt Milan ledelsen. (Foto: Dylan Martinez/reuters)
Sjevtsjenko ble spilt gjennom av Clarence Seedorf og i kamp med Inters Cordoba fikk han presset ballen i mål.
Dermed Inter måtte ha to scoringer for å kapre finaleplass på grunn av regelen om flest scorede bortemål.
Etter 83 minutter utlignet innbytter Obafemi Martins for Inter, og det var full kamp igjen.
Målet kom ut av ingenting etter at Martins stjal ballen fra Paolo Maldini.
En annen innbytter, Kallon, hadde en kjempesjanse for Inter like etter utligningen, men etter to minutters tilleggstid var det slutt, og Milan kunne hylle matchvinner Sjevtsjenko.
Det ble en tett og jevn kamp på San Siro. Flere spillere måtte i dommerens bok på grunn av sene etterslenger og hendelser utenfor spillets sentrum.
Kampfakta
Inter (Italia) - Milan (Italia) 1-1 (0-1). Sammenlagt 1-1 (Milan videre på bortemålsregelen).
San Siro
76.854 tilskuere
Mål: 0-1 Andrej Sjevtsjenko (45), 1-1 Obafemi Martins (83).
Spilles onsdag (20.45): Juventus (Italia)- Real Madrid (Spania)
(1-2).
Finalen spilles 28. mai på Old Trafford, Manchester.