The Serie A clash appeared to be heading for a goalless draw, but Icardi had other ideas as the 25-year-old nodded past Italian goalkeeper Gianluigi Donnarumma in second-half stoppage time to break Milan hearts.
Luciano Spalletti's side had the better of the opportunities in the Serie A clash, and the win - Inter's seventh in a row in all competitions - has seen them move above Lazio into third position in the table.
Read how it all unfolded in Sports Mole's minute-by-minute live commentary of the action below.
INTER: Handanovic; Vrsaljko, De Vrij, Skriniar, Asamoah; Vecino, Brozovic; Politano, Nainggolan, Perisic; Icardi
MILAN: Donnarumma; Calabria, Musacchio, Romagnoli, Rodriguez; Kessie, Biglia, Bonaventura; Suso, Higuain, Calhanoglu
#InterMilan: The Best Goal ⚽
We've asked all the Rossoneri fans to vote and your winner is... Cristian Zapata's acrobatic goal for 2-2! 🥇
Tantissimi voti, un solo vincitore: i tifosi rossoneri hanno scelto l'indimenticabile pareggio di Cristian Zapata! 🥇#MILANosiamonoi pic.twitter.com/x1TF0ofejz— AC Milan (@acmilan) October 21, 2018