Milan tar på torsdagskvällen emot Slavia Prag i den första av två åttondelsfinaler i Europa League. Spelplatsen är San Siro i sedvanlig ordning.
Matchen var till en början tämligen steril - men efter 26 minuter hettade det till rejält. Slavia Prags vänsterback Malick Diouf fick syna det röda kortet efter en vansinnestackling med dobbarna först.
Det tog bara åtta minuter för Milan att ta ledningen efter utvisningen. Olivier Giroud slog till på klassiskt manér och nickade in ledningsmålet.
Slavia Prag skulle dock svara direkt och tysta San Siro. David Doudera sköt ett volleyskott utanför straffområdet som letade sig in bakom Maignan via stolpen.
Milan tryckte sedan på för ett ledningsmålet - och det numerära överläget var påtagligt. Chans efter chans radades upp, och i den 44:e minuten fick de utdelning. Reijnders fick bollen passad till sig från hörnflaggan och sköt distinkt in 2-1-målet från långt håll vid den främre stolpen.
Även 3-1 kom innan halvtidsvilan. På en hörna kom Ruben Loftus-Cheek högst och nickade in utökningen.
Sparta Prag fick dock - trots en man utvisad - kontakt i den andra halvleken. I den 65:e minuten sköt Ivan Schranz bollen rakt upp i krysset och reduceringen var ett faktum.
Matchens slutskede präglades av chanser åt båda håll, men det var Milan som drog det längsta strået efter ett formidabelt förarbete av Rafael Leao. Portugisen tog sig fram på vänsterkanten, dribblade förbi försvararen och chippade bollen över Slavia Prags målvakt Stanek. Bollen var på väg ut, men Pulisic petade in bollen med tån. Milan utökade därmed ledningen till 4-2 - något som kan visa sig vara viktigt inför returmötet nästa vecka.
Luften gick ur ett hårt kämpande Slavia Prag efter Milans mål, och matchen slutade sedemera 4-2.
Startelvor:
Milan: Maignan - Florenzi, Kjaer, Gabbia, Hernandez - Adli, Reijnders - Pulisic, Loftus-Cheek, Leao - Giroud.
Slavia Prag: Stanek, Diouf, Zima, Holes, Vlcek - Dorley, Masopust - Zmrzly, Provod, Doudera - Chytil.