Bei Inter Mailand konnte Trainer Hector Cuper im Vergleich zum 0:0 im Hinspiel wieder auf den zuletzt gesperrten Cristiano Zanetti zurückgreifen, der für den verletzten Coco in der Startelf stand. Ansonsten begannen die "Nerazzurri" unverändert, Stürmerstar Vieri (Knieverletzung) wurde nicht rechtzeitig fit - Crespo und Recoba begannen vorn. Milans Coach Carlo Ancelotti musste den Torwart wechseln: Für den Brasilianer Dida (Fingerverletzung) rückte Abbiati zwischen die Pfosten. "Ballkünstler" Pirlo durfte rechtzeitig genesen für Brocchi im Mittelfeld ran.
Das 255. Mailander Stadtderby, als "Grande Spettacolo" angekündigt, bot zunächst wenig mehr als die Nullnummer im Hinspiel. Milan wirkte anfangs forscher, holte einige Ecken heraus. Inters Spielaufbau stockte, bedingt durch einige eklatante Fehlpässe (Di Biagio, Conceicao). Den ersten Torabschluss brachte dennoch die Cuper-Elf zu Stande - Crespo stellte Abbiati mit seinem Flachschuss jedoch nicht vor große Probleme (13.). Ansonsten dominierten wieder die Abwehrreihen, in der des AC feierte Routinier Maldini seinen 45. Derby-Einsatz - Rekord! In der 24. Minute sorgte Schewtschenko mit einem Schuss aus spitzem Winkel dann auch erstmals für Gefahr vor dem Inter-Tor. Das war's bis zur Nachspielzeit des ersten Abschnitts - Milan wenigstens anfangs bemüht, Inter beinahe destruktiv und mit vielen Fehlern, das Spielniveau am unteren Limit. Doch dann die angesprochene Nachspielzeit: Seedorf mit Steilpass auf Schewtschenko. Der Ukrainer setzt sich gegen seinen Widersacher Cordoba mit Glück durch und bringt das Leder im Fallen auch noch am herausstürzenden Toldo vorbei - 0:1 (45.+1), Pause.
Cuper reagierte zur Pause: Im Sturm bekam Youngster Martins den Platz von Recoba, der Rot-gefährdete Di Biagio musste Dalmat weichen. Die Vorzeichen hatten sich also geändert. Inter war nun dazu verdammt, die Schlagzahl zu erhöhen und nach vorne zu spielen. Die "Rossoneri" konnten sich dagegen weit zurückziehen und auf Konter lauern. Ein solcher hätte nach einer guten Stunde fast das 0:2 gebracht, doch Schewtschenkos Heber strich knapp am Tordreieck vorbei. Auf der Gegenseite hatte Inter große Probleme, die Spitzen in Szene zu setzen. Nur nach einem Freistoß von Emre, pariert von Abbiati, wurde es eng. Doch Conceicao verzog beim Nachschuss (63.). Cuper brachte zwar mit Kallon noch eine weitere Spitze, erntete allerdings nur Kopfschütteln beim Anhang, nahm er mit Crespo doch auch einen Angreifer vom Platz. Wenig Risiko beim Argentinier also, dem mit Lazios Roberto Mancini ja angeblich schon ein Nachfolger im Nacken sitzt.
Milan wirkte mit zunehmender Spieldauer immer abgeklärter und steuerte in der Schlussphase zielstrebig dem Finale am 28. Mai in Manchester entgegen. Bis Nesta eine Kerze schlug und Maldini Martins nicht aufhalten konnte. Der 18-jährige Nigerianer schaltete blitzschnell und glich per Flachschuss aus (84.). Inter war plötzlich wieder im Spiel, Milans Abwehrrecken wackelten. Als Kaladse auch noch patzte, hatte Kallon sogar die Riesenchance zum 2:1, doch Abbiati rettete das so wichtige Remis (87.). Auch bei Cordobas Kopfball war der Keeper auf dem Posten (88.).
Der AC Mailand steht unter dem Strich verdient im Finale der Champions League, wenngleich die Rot-Schwarzen keines der beiden Stadtderbys gewinnen konnten und am Ende gewaltig zittern mussten. Inter fehlte jedoch in beiden Partien die Ideen und der Mut, um die Abwehr des Stadtrivalen entscheidend aushebeln zu können. Und während AC-Coach Carlo Ancelotti seinen Kopf noch einmal aus der Schlinge ziehen konnte, scheinen die Tage Hector Cupers nach einer weiteren enttäuschenden Leistung seiner Mannschaft gezählt.