Match ends, Milan 3, Inter Milan 0.
AC Milan secured an impressive Serie A derby victory as Inter missed a penalty and saw boss Roberto Mancini sent off.
Centre-back Alex headed Milan into a first-half lead, before Mancini was dismissed from the dugout for arguing over a rejected penalty appeal.
Mauro Icardi then hit the post from the spot after he was brought down by Alex.
Milan struck twice in the final 20 minutes, with Carlos Bacca turning in a cross from M'Baye Niang, who added a third from Giacomo Bonaventura's pass.
The result leaves the rivals as they were in the table, Inter fourth and Milan sixth.
Milan keep cool in the derby heat
Both sides looked very ordinary for long spells at the San Siro, with neither suggesting they have the quality to match title contenders Napoli and Juventus.
Crucially, though, Milan kept their composure when it mattered, and secured a win that dealt a significant blow to Inter's Champions League hopes.
Mancini lost his head early in the second half when debutant Eder's penalty appeal was rightly turned down, with Milan's teenage goalkeeper Gianluigi Donnarumma getting the ball as he collided with the striker following his own sliced clearance.
Inter failed to take advantage when they had the chance to draw level from the penalty spot, and lost their defensive discipline as Sinisa Mihajlovic's side then struck twice in quick succession.
History repeats, 1984 style...
In the minutes before kick-off, Milan's fans unfurled a banner depicting the thunderous header from former England striker Mark Hateley that ended a long wait for a derby victory over Inter in October 1984.
Mihajlovic's side took the lead in the 2016 version with a similarly powerful header, as Alex got in behind Davide Santon to convert Keisuke Honda's cross - the first headed goal Inter have conceded in Serie A this season.
It was a poor night for former Newcastle right-back Santon, recalled for his first start since late October, capped when he gave the ball away to Bonaventura, who set up Niang for Milan's third.
Eder disappoints, Icardi falls flat again
Mancini pinned his hopes of goals on Eder, the Italy international striker signed on a two-year loan from Sampdoria during the week.
Inter's boss decided against partnering Eder with his former Samp team-mate Icardi, dropped to the bench after missing an easy chance during last weekend's 1-1 draw against relegation candidates Carpi.
The new signing made a lively start, but fluffed his big chance when he miscued a header from Juan Jesus's left-wing cross when unmarked seven yards from goal.
It brought to mind Mancini's put-down after Icardi's bad miss last weekend, when he said: "I would have scored that and I'm 50 years old."
As if that was not bad enough, Icardi made a mess of his big chance yet again when he missed from the penalty spot.
What next?
Both clubs are in midweek Serie A action on Wednesday - Inter are at home to Chievo, while Milan travel to Palermo.
Line-ups
AC Milan
Formation 4-4-2
- 99G Donnarumma
- 20Abate
- 33Dias da CostaBooked at 58mins
- 13Romagnoli
- 31Antonelli
- 10HondaSubstituted forBoatengat 89'minutes
- 27KuckaBooked at 65mins
- 18Montolivo
- 28Bonaventura
- 19NiangSubstituted forBalotelliat 79'minutesBooked at 80mins
- 70BaccaSubstituted forBertolacciat 85'minutes
Substitutes
- 2De Sciglio
- 4Mauri
- 7Menez
- 16Poli
- 17Zapata
- 25Simic
- 32Abbiati
- 45Balotelli
- 72Boateng
- 91Bertolacci
- 96Calabria
- 97Livieri
Inter Milan
Formation 4-4-2
- 1Handanovic
- 21Santon
- 25Miranda
- 24Murillo
- 5Nunes Jesus
- 44PerisicSubstituted forMeloat 77'minutes
- 17Medel
- 77Brozovic
- 22LjajicSubstituted forAlex Tellesat 87'minutes
- 23Éder
- 10JoveticBooked at 45minsSubstituted forIcardiat 64'minutes
Substitutes
- 7Kondogbia
- 8Palacio
- 9Icardi
- 12Alex Telles
- 27Gnoukouri
- 30Carrizo
- 33D'Ambrosio
- 46Berni
- 55Nagatomo
- 83Melo
- 97Manaj
- Referee:
- Antonio Damato
- Attendance:
- 77,043
Match Stats
- Possession
- Home49%
- Away51%
- Shots
- Home14
- Away12
- Shots on Target
- Home5
- Away3
- Corners
- Home5
- Away6
- Fouls
- Home18
- Away16
Live Text
Post update
Full Time
Second Half ends, Milan 3, Inter Milan 0.
Post update
Foul by Juan Jesus (Inter Milan).
Post update
Mario Balotelli (Milan) wins a free kick in the defensive half.
Substitution
Substitution, Milan. Kevin-Prince Boateng replaces Keisuke Honda.
Post update
Foul by Miranda (Inter Milan).
Post update
Mario Balotelli (Milan) wins a free kick in the defensive half.
Substitution
Substitution, Inter Milan. Alex Telles replaces Adem Ljajic.
Post update
Juan Jesus (Inter Milan) wins a free kick in the defensive half.
Post update
Foul by Keisuke Honda (Milan).
Post update
Corner, Inter Milan. Conceded by Alex.
Substitution
Substitution, Milan. Andrea Bertolacci replaces Carlos Bacca.
Post update
Attempt missed. Juraj Kucka (Milan) right footed shot from outside the box is close, but misses to the right.
Post update
Corner, Milan. Conceded by Miranda.
Post update
Attempt blocked. Keisuke Honda (Milan) left footed shot from the right side of the box is blocked. Assisted by Mario Balotelli.
Post update
Corner, Milan. Conceded by Samir Handanovic.
Post update
Attempt saved. Mario Balotelli (Milan) right footed shot from the centre of the box is saved in the bottom right corner. Assisted by Keisuke Honda with a cross.
Booking
Mario Balotelli (Milan) is shown the yellow card for a bad foul.
Post update
Gary Medel (Inter Milan) wins a free kick in the defensive half.
Post update
Foul by Mario Balotelli (Milan).