The Argentina international striker converted a controversial 90th-minute penalty after Ricardo Rodriguez was adjudged to have pulled back Danilo D'Ambrosio to snatch a 3-2 victory at the San Siro.
Icardi put the home side ahead with a deft 28th-minute finish and then after Suso had levelled with an equally adept finish, dispatched an improvised 63rd-minute volley.
Montella's men thought they had claimed a point when keeper Samir Handanovic could only carry Giacomo Bonaventura's 81st-minute shot into his own net, but Icardi's late heroics condemned them to a fourth Serie A defeat of the new campaign which leaves them 10 points adrift of their city rivals.
The win lifts Luciano Spalletti's side to second in the Serie A standings with 22 points, two behind Napoli, who have yet to drop a point this season.
Milan slumped to 10th, with just 12 points from eight matches.
Sampdoria came from behind to secure a 3-1 victory over Atalanta at the Stadio Luigi Ferraris on Sunday.
The visitors led at the interval after Bryan Cristante opened the scoring midway through the first half.
But Sampdoria responded in emphatic fashion after the break, scoring three times inside 12 minutes to secure the victory.
Duvan Zapata hauled them level after 56 minutes before Gianluca Caprari doubled their tally moments later and Karol Linetty completed the win with 68 minutes gone.
Genoa also scored three times as they secured their first victory of the season, 3-2 at Cagliari.
After a run of five defeats from their last six matches, they struck first when Andrey Galabinov scored after just eight minutes.
Adel Taarabt then got a second with 10 minutes of the first half remaining, and although Leonardo Pavoletti hit back for Cagliari after the break, Luca Rigoni was on the mark with 75 minutes gone.
Cagliari's Joao Pedro scored from the penalty spot four minutes later to ensure a nervy finish, but the visitors clung on.
Earlier, Cyril Thereau came back to haunt his former team as Fiorentina secured a much-needed 2-1 victory over Udinese.
Thereau, who spent three years at Udinese before moving to Fiorentina in the summer, opened the scoring after 27 minutes when he converted from close range.
The forward then doubled his tally shortly before the hour mark. Samir pulled one back for the visitors with just under 20 minutes remaining, but Fiorentina saw out the remainder of the match to end a three-game winless streak.
Bologna struck twice to win 2-1 against SPAL and register a third victory in as many matches.Andrea Poli netted for the home team after 30 minutes before an own goal by Bartosz Salamon shortly after half-time increased their advantage.
Mirco Antenucci's 88th-minute strike reduced the deficit, but Bologna saw out the remaining time to secure the points.
Lorenzo De Silvestri scored a late equaliser as Torino rescued a point in a 2-2 draw at Crotone.
The hosts led at half-time after Marcus Rohden's 25th-minute opener, only for Iago Falque to haul the visiting side level after the interval.
Bruno Martella restored Crotone's advantage shortly after the hour mark before De Silvestri struck in the second minute of injury time.
Elsewhere, Sassuolo and Chievo played out a goalless draw at the Mapei Stadium.