Match ends, Inter Milan 1, Milan 0.
Mario Balotelli returned to action for AC Milan but could not prevent Inter Milan winning a closely fought derby.
Balotelli, back at the club on loan from Liverpool, hit the post after coming on as a substitute as a goal from Fredy Guarin moved Inter top.
Roberto Mancini's side maintained their 100% start by continuing their impressive recent record against their city rivals at the San Siro.
Colombian midfielder Guarin found the bottom corner from outside the area.
Is Mario back on track?
Without question, Milan carried much more of a goal threat after Balotelli's introduction just after the hour, and the 25-year-old drew praise for his performance from team-mates and his manager afterwards.
"The Mario Balotelli we saw tonight is the one we want to see every match," said AC Milan captain Riccardo Montolivo.
"He is training well. Let's give him time and then come Christmas we will see how he is getting on and how much he has changed."
The former Inter striker was immediately into the action, taking responsibility for set-pieces, striking the frame of the goal from outside the box and forcing a fine save from Inter goalkeeper Samir Handanovic.
Equally as importantly as he attempts to atone for an abject 12 months at Anfield, the Italy international refused to respond to Inter's attempts to provoke him during an encouraging cameo.
By doing so, he seemed to show the mental strength he says he requires to get his career back on track again. It has been reported that he has a good conduct clause in his contract, meaning he is banned from extravagant haircuts, smoking and visiting night clubs.
"He definitely did well after he came on," added Milan coach Sinisa Mihajlovic. "He is training well and will surely give us a big hand. He knows what he has to do, he has to continue working and now is not the time to judge him."
Are Inter serious title challengers?
Juventus have won the last four Serie A titles, but their shaky start to the season - one point from their opening three matches - could open the door to a title bid from another team this season.
And Inter could be that side, having made their best start to a season for 13 years, returning to the summit of Serie A after the latest victory.
It is now just one defeat in nine games against their fierce rivals, and Sunday provided further evidence of their ability to grind out wins when not playing to their maximum.
- 5Nunes JesusBooked at 37minsSubstituted forTellesat 68'minutes
- 83MeloBooked at 63mins
- 44PerisicSubstituted forRanocchiaat 85'minutes
- 10JoveticSubstituted forPalacioat 72'minutes
- 20AbateBooked at 22mins
- 2De Sciglio
- 27KuckaBooked at 66minsSubstituted forPoliat 72'minutes
- 10HondaBooked at 42minsSubstituted forCerciat 81'minutes
- 9De Souza da Silva
- 70BaccaSubstituted forBalotelliat 62'minutes
- 8Fernández Saez
- 33Dias da Costa
- 34de Jong
- Gianluca Rocchi
- Shots on Target
Second Half ends, Inter Milan 1, Milan 0.
Foul by Alex Telles (Inter Milan).
Mario Balotelli (Milan) wins a free kick on the right wing.
Attempt missed. Giacomo Bonaventura (Milan) right footed shot from outside the box misses to the right following a set piece situation.
Foul by Alex Telles (Inter Milan).
Alessio Cerci (Milan) wins a free kick on the right wing.
Foul by Geoffrey Kondogbia (Inter Milan).
Mario Balotelli (Milan) wins a free kick in the attacking half.
Corner, Milan. Conceded by Jeison Murillo.
Attempt missed. Giacomo Bonaventura (Milan) right footed shot from outside the box is too high.
Corner, Milan. Conceded by Andrea Ranocchia.
Attempt missed. Jeison Murillo (Inter Milan) right footed shot from the centre of the box is close, but misses to the right following a corner.
Corner, Inter Milan. Conceded by Cristian Zapata.
Substitution, Inter Milan. Andrea Ranocchia replaces Ivan Perisic because of an injury.
Corner, Milan. Conceded by Alex Telles.
Attempt blocked. Cristian Zapata (Milan) header from the centre of the box is blocked. Assisted by Giacomo Bonaventura with a cross.
Corner, Milan. Conceded by Samir Handanovic.
Attempt saved. Mario Balotelli (Milan) right footed shot from outside the box is saved in the bottom right corner.
Substitution, Milan. Alessio Cerci replaces Keisuke Honda.