Serie A | Milan 3-1 Inter: Diego Moreira inspiration for derby success
Diego Moreira inspired Milan’s fourth consecutive Derby della Madonnina victory with a goal and assists for Christian Pulisic and Adrien Rabiot, inflicting Inter’s first Serie A defeat.
The Rossoneri were stung by their first Serie A defeat of the season, losing here 4-2 to Bologna in the midweek round. While Fikayo Tomori joined Matteo Gabbia, Samuel Chukwueze, Ruben Loftus-Cheek, Alexis Saelemaekers and Pietro Terracciano on the absentee list, they did bring back Adrien Rabiot, Mario Gila and Diego Moreira.
The Nerazzurri were top of the table after two lucky late wins over Fiorentina and Venezia, but Lautaro Martinez, Luis Henrique, Curtis Jones, John Stones and Benjamin Pavard were still out, while Ivan Provedel had flu. Cristian Chivu surprised with a 3-4-2-1 formation, using Andy Diouf and Petar Sucic in new roles.
Milan had won the last three competitive meetings with their city rivals without conceding a goal and were unbeaten against them since a 2-1 result in April 2024.
It was also a very special occasion, the first Derby della Madonnina since the Stadio Meazza turned 100, and with plans for the new Generali Stadium unveiled just 48 hours ago.
It took under four minutes to break the deadlock, as Diego Moreira got down the right and stood up the cross for a Pulisic header from six yards, twisting it into the far bottom corner.
Milan added a second from a smart set play routine, as the Diego Moreira corner was taken short for Rabiot, who had peeled away from his marker to sweep in first-time with the inside of the left foot, going in off the far post.
Goncalo Ramos accidentally charged down a promising Luka Modric strike, while Carlos Augusto turned a free header over from a set play.
It was only a warning, as Inter did get one back from a corner kick, flicked on by Manuel Akanji at the near post for Alessandro Bastoni’s header from six yards. The defender almost had to crouch to nod in his first Derby della Madonnina goal.
Suddenly it was a different game, Maignan flying to push the Hakan Calhanoglu screamer over the bar, then the Turkish midfielder testing the goalkeeper directly from the corner flag.
Diouf also drilled into Maignan’s arms from the edge of the area, but the goalkeeper made a simply astonishing reaction save with one hand to deny Djed Spence from close range on the Carlos Augusto assist.
Having already provided two assists, Diego Moreira added a goal with a free kick that he curled over the wall into the near corner, leaving Josep Martinez unsighted by the wall.
Carlos Augusto went for a diving header on the Calhanoglu cross and turned it wide of the back post undisturbed, while Marcus Thuram couldn’t get enough on a Carlos Augusto cross to truly test Maignan.
There was confusion on 75 minutes when the referee awarded a penalty for handball, but VAR quickly showed him that the Henrikh Mkhitaryan cross hit Mario Gila squarely on the chest.
Milan were pinned back for the final 20 minutes, but Inter struggled to create genuine scoring opportunities. Instead, Josep Martinez had to scramble back to push the swerving Alphadjo Cisse strike out of the far top corner from the edge of the area.
Milan 3-1 Inter
Pulisic 4 (M), Rabiot 10 (M), Bastoni 22 (I), Diego Moreira 43 (M)
31-10-2026 19:45
MatchDay 10
Live
Player statistic
1st half
| Christian Pulisic (Assist: Diego Moreira) | 4' | |||
| Adrien Rabiot (Assist: Diego Moreira) | 10' | |||
| 22' | Alessandro Bastoni (Assist: Manuel Akanji) | |||
| Diego Moreira | 43' |
2nd half
| Koni De Winter | 49' | |||
| Diego Moreira | 52' | |||
| 90' | Carlos Augusto |
Milan
Inter
Starting lineups
16 Mike Maignan Goalkeeper
5 Koni De Winter Defender
34 Mario Gila Defender
13 Sankhoun Diawara Defender 83'
31 Strahinja Pavlovic Defender
12 Adrien Rabiot Midfielder
14 Luka Modric Midfielder
80 Yunus Musah Midfielder 82'
11 Christian Pulisic Attacker 82'
22 Diego Moreira Attacker 89'
9 Gonçalo Ramos Attacker 89'
1 Josep Martínez Goalkeeper
95 Alessandro Bastoni Defender 82'
99 Djed Spence Defender
25 Manuel Akanji Defender
8 Petar Sucic Defender
31 Yann Bisseck Defender 82'
30 Carlos Augusto Midfielder
20 Hakan Calhanoglu Midfielder 72'
23 Nicolò Barella Midfielder 82'
17 Andy Diouf Attacker 72'
9 Marcus Thuram Attacker
Substitutes
2 Pervis Estupiñán Defender
55 Silvano Vos Midfielder
73 Francesco Camarda Attacker
96 Lorenzo Torriani Goalkeeper
35 Valeri Vladimirov Defender
28 Christian Comotto Midfielder
41 Leo Paul Bouyer Goalkeeper
47 Nirash Perera Defender
40 Lorenzo Ossola Midfielder
49 Luca Menon Attacker
30 Ardon Jashari Midfielder 82'
70 Alphadjo Cissè Attacker 82'
33 Davide Bartesaghi Defender 83'
42 Filippo Terracciano Midfielder 89'
20 Omari Hutchinson Midfielder 89'
5 Aleksandar Stankovic Midfielder
12 Raffaele Di Gennaro Goalkeeper
51 Leon Jakirovic Defender
60 Alain Taho Goalkeeper
53 Matteo Lavelli Attacker
48 Mattia Mosconi Attacker
46 Leonardo Bovio Defender
22 Henrikh Mkhitaryan Midfielder 72'
7 Piotr Zielinski Midfielder 72'
32 Federico Dimarco Defender 82'
14 Ange-Yoan Bonny Defender 82'
94 Pio Esposito Attacker 82'