The first 10 minutes of the half was scrappy as both sides were cancelled each other out as they were still trying to establish rhythm.
Suso had the first real chance for the hosts in the 14th minute after receiving a through ball from Manuel Locatelli, but he fluffed his opportunity by going down in the penalty box too easily.
Franck Kessie was close to opening the scoring in the 26th minute with a powerful header inside the box but Inter goalkeeper Samir Handanovic made a brilliant reflex save to keep the score deadlocked.
Hendanovic did well to deny Milan the breakthrough in the 37th minute as he produced a double save to deny Suso in the box,
Luciano Spalletti's troops only gained confidence with five minutes left of the first stanza but they could not find the net despite camping in the Rosseneri's half, as the two sides went into the break goalless/
Inter continued from where they left off at the start of the second half as they pressurised the hosts and looked dangerous going forward.
In the 56th minute, Manuel Locatelli had a chance to break the deadlock for Milan but his strike from just outside the box sailed over the bar.
Joao Mario thought he had found the breakthrough in the 66th minute after going clear inside the box but Rossoneri goalkeeper Gianluigi Donnarumma kept the score level with a fantastic save.
The quality was lacking with the final ball towards the last quarter of the match as both sides struggled to create clear goal scoring opportunities.
Ivan Perisic almost stole the victory in the closing stages with a strike inside the box, but Donnarumma did well to ultimately to make the save, which sent the match into extra-time.
Patrick Cutrone finally broke the deadlock on the stroke of halftime of extra-time after firing past Handanovic after being played in by Suso.
Inter threw numbers forward in the last five minutes, but Milan managed to see out the closing stages to secure their spot in the last four.