Gianluigi Donnarumma performed heroics and the woodwork denied Inter three times, but Milan still lost the derby 2-0 with Marcelo Brozovic and Romelu Lukaku goals.
Antonio Conte’s men were the favourites coming in and the only Serie A side with a 100 per cent record after three rounds, but Danilo D’Ambrosio stepped in for not fully fit Antonio Candreva and Diego Godin returned after he was rested for the 1-1 Champions League draw with Slavia Prague. Milan introduced Andrea Conti for suspended Davide Calabria, but the real surprise was Rafael Leao given his first start after just a 15-minute substitute appearance against Udinese on August 25.
The two teams took the pre-match photograph together as part of an anti-racism initiative.
Ricardo Rodriguez almost gifted the opener on 10 minutes with an awful back-pass, but Gianluigi Donnarumma was alert and decisive as Lautaro Martinez tried to pounce.
Donnarumma was called into action again, getting down quickly for a one-handed save on Romelu Lukaku.
The goalkeeper was exceptional to parry Lautaro Martinez on a Stefano Sensi pull-back and Danilo D’Ambrosio somehow turned the rebound on to the upright from point-blank range.
Krzysztof Piatek had the ball in the net, but only after the whistle had already been blown for a Franck Kessie handball as he charged down the attempted clearance.
Inter had a similar situation with Lautaro Martinez, after Donnarumma’s flying save on a simply sensational D’Ambrosio acrobatic bicycle-kick volley, but both the Italian and Argentine were marginally offside.
Milan were very dangerous on the counter with Suso running coast-to-coast, but rather than pass to Rafael Leao, he went for goal himself and it was charged down by Kwadwo Asamoah.
Leao floated a splendid cross from the left and Piatek turned the free header over the bar.
Straight after the restart, Sensi took a free kick short for Marcelo Brozovic and his shot from the edge of the box took a huge deflection off Rafael Leao’s heel to wrongfoot Donnarumma as it squirmed into the far bottom corner. The offside flag was raised, but after a VAR review, Lautaro Martinez was judged not to be interfering with play and the goal given.
Milan kept possession for long periods, but as seen so many times this season, without creating genuinely dangerous scoring opportunities.
Instead, Barella floated a cross in from the left for Romelu Lukaku’s glancing header into the far top corner, as Inter doubled their lead.
Substitute Matteo Politano nearly made it 3-0 moments later, his strike from outside the area bouncing off the crossbar with Donnarumma stranded.
Theo Hernandez came off the bench and also rattled the frame of the goal, bursting down the left to clip the near upright from a tight angle.
There was almost a third in stoppages, as Antonio Candreva burst away on the counter and his deflected finish bounced off the base of the near post.
See the latest Serie A predictions and betting tips with Eurotips.co.uk