A bajnoki tabellán egymás mögött, a második, illetve harmadik helyen álló két milánói sztárcsapat egymás elleni két bajnokija közül az első döntetlent (1-1) hozott, míg a másodikat Olivier Giroud duplájával 2-1-re a Milan nyerte. A két csapat ez előző kupakiírás negyeddöntőjében is összefutott, akkor Christian Eriksen szenzációs szabadrúgásgóljával az Inter nyert 2-1-re.
A trófeához egyre közeledve egyik csapat sem kockáztatott túl sokat, de az első nagy helyzet így is egy hibábó lett, amikor a 10. percben Handnovic röviden passzolta ki a labdát Brozovicnak, a Milan megszerezte, de Saelemaekers lövésére leért a szlovén kapus, míg egy perccel később Theo Hernandez gurított centikkel a kék-feketék kapuja mellé.
A 25. percben a Milan elveszítette egyik középhátvédjét, egy ütközés után Romagnolit kellett lecserélni, akinek Kalulu érkezett a helyére. A játékrész második fele minimális Inter-mezőnyfölényt hozott, Maignannak azonban nem volt komoly védenivalója.
Fordulás után az első nagyobb izgalmat az jelentette, amikor az 58. percben Lautaro Martínez nem húzta vissza a lábát a Maignannal való ütközésnél, és a francia kapust ápolni kellett - folytatni tudta, az argentin csatár pedig sárgát kapott. A játékrész első kaput eltaláló lövésére a 63. percig kellett várni, akkor Rafael Leao megindulása után Florenzi vállalkozott, de Handanovic fogta a középre tartó labdát.
A 75. percben ismét a Milan került az Inter kapuja elé, de Junior Messias beadásánál kicsit egymást is zavarta Giroud és Theo Hernandez. A cserék egyik csapat játékán sem javítottak, az viszont eseményszámba ment, hogy a 88. percben pályára lépett az Inter téli szerzeménye, az Atalantától érkező Robin Goosens. A hátralévő percek már nem hoztak izgalmakat, maradt a 0-0, a visszavágón dől el, melyik milánói csapat jut be a döntőbe.
Eredmény, Olasz Kupa, elődöntő:
AC Milan - FC Internazionale 0-0
A győztes a Juventus-Fiorentina párharc továbbjutójával találkozik majd a május 11-i római döntőben.