Match ends, Lazio 1, Milan 3.
AC Milan ended Lazio's perfect home record with an impressive performance which lifted them above the Rome club into sixth place in Serie A.
Andrea Bertolacci set Milan on their way to a third successive league win when he tapped in his first goal for the club after 25 minutes.
Philippe Mexes headed in with his first touch after replacing Alex, who was stretched off after a head knock.
Carlos Bacca ran through to make it 3-0 before Ricardo Kishna's late reply.
Lazio had conceded only one goal at home in the league this season.
But they were outplayed by Sinisa Mihajlovic's improving side, who were handed the lead when Lazio goalkeeper Federico Marchetti parried the ball into the path of Bertolacci to open the scoring.
Milan also hit a post in the first half through Alessio Cerci before Alex went off after appearing to be knocked out in an accidental collision while defending a free-kick.
Mexes, who had not played this season because of injury, made an immediate impact as he headed home a 53rd-minute free-kick from Giacomo Bonaventura.
Bonaventura, the player with more assists in Serie A then anyone else, released Bacca to slot home the third and his seventh goal of the season.
However, 16-year-old goalkeeper Gianluigi Donnarumma was denied a clean sheet by Kishna's angled drive six minutes from time.
Elsewhere, Fiorentina returned to the top of table with an emphatic 4-1 victory over Frosinone.
Napoli's 0-0 draw at Genoa gave Fiorentina the chance to replace Inter Milan as leaders and Paulo Sousa's side took advantage with four first-half goals to go top on goal difference.
Struggling Bologna secured their third win of the season by beating Atalanta 3-0 to move within a point of Frosinone, who are just above the relegation zone.
The games between Carpi and Verona and Udinese against Sassuolo both finished 0-0.
- 8BastaBooked at 59mins
- 33Dos Santos Nascimento
- 18GentilettiBooked at 90mins
- 23OnaziSubstituted forCataldiat 45'minutes
- 87CandrevaSubstituted forKishnaat 63'minutes
- 21S Milinkovic-SavicSubstituted forMatriat 71'minutes
- 10Felipe Anderson
- 99G Donnarumma
- 2De Sciglio
- 33Dias da CostaSubstituted forMexesat 51'minutes
- 13RomagnoliBooked at 66mins
- 91BertolacciSubstituted forPoliat 35'minutes
- 11CerciSubstituted forHondaat 81'minutes
- 28BonaventuraBooked at 87mins
- 9De Souza da Silva
- 34de Jong
- Antonio Damato
- Shots on Target
Second Half ends, Lazio 1, Milan 3.
Foul by Senad Lulic (Lazio).
Juraj Kucka (Milan) wins a free kick in the defensive half.
Corner, Lazio. Conceded by Philippe Mexes.
Attempt blocked. Felipe Anderson (Lazio) right footed shot from outside the box is blocked. Assisted by Danilo Cataldi.
Attempt missed. Keisuke Honda (Milan) left footed shot from outside the box is too high from a direct free kick.
Santiago Gentiletti (Lazio) is shown the yellow card for a bad foul.
Foul by Santiago Gentiletti (Lazio).
Keisuke Honda (Milan) wins a free kick in the attacking half.
Alessandro Matri (Lazio) wins a free kick in the attacking half.
Foul by Mattia De Sciglio (Milan).
Giacomo Bonaventura (Milan) is shown the yellow card for a bad foul.
Dusan Basta (Lazio) wins a free kick in the defensive half.
Foul by Giacomo Bonaventura (Milan).
Foul by Ricardo Kishna (Lazio).
Keisuke Honda (Milan) wins a free kick in the defensive half.
Goal! Lazio 1, Milan 3. Ricardo Kishna (Lazio) left footed shot from the left side of the box to the bottom left corner. Assisted by Danilo Cataldi.
Offside, Lazio. Santiago Gentiletti tries a through ball, but Ricardo Kishna is caught offside.
Substitution, Milan. Keisuke Honda replaces Alessio Cerci.