Atalanta struck a blow to Milan's Serie A title hopes after winning 3-0 against the league leaders at San Siro on Saturday.
A first-half header from Cristian Romero and a penalty after the break from Josip Ilicic set the Rossoneri on course for just a second league loss of the season.
Stefano Pioli's side secured the title of winter champions by staying top at the halfway stage of the season, but Inter have closed the gap and the rest of the chasing pack will feel emboldened by the result.
Duvan Zapata struck a clinical third goal on the break to make certain there would be no comeback from Milan, who are now winless in seven home league matches against Atalanta stretching back to January 2014.
New signing Soualiho Meite almost marked his debut with a goal three minutes in, the midfielder sending a header high and wide from Sandro Tonali's corner.
Atalanta began to build some pressure and found the breakthrough 26 minutes in, Romero stooping to nod the ball past Gianluigi Donnarumma from Robin Gosens' delivery.
The visitors doubled their advantage just seven minutes into the second half, Ilicic firing a penalty beneath Donnarumma after Franck Kessie had caught him in the face with a raised arm.
It should have been 3-0 on the hour mark, Zapata heading over after being picked out by a brilliant Ilicic cross from the right.
Pioli handed a debut off the bench to Mario Mandzukic, and he nearly marked his Serie A return with an immediate impact, Pierluigi Gollini doing well to get a hand down and claw away his shot.
As Milan sought a lifeline, Atalanta hit them on the break in ruthless fashion.
Romero slipped in Zapata - who had hit the post with a header in his side's previous attack - and the forward rifled a left-footed shot beyond Donnarumma.
What does it mean? Milan are winter champions but Scudetto battle is on
Inter's goalless draw at Udinese means Milan stay top of the table at the midway point of the season despite this defeat.
Still, their lead over the Nerazzurri is now down to two points as they have now lost twice in their previous four league games.
Atalanta are up into fourth, although they have played two games more than Napoli and Juventus below them.
Ilicic shines at San Siro
With Alejandro Gomez almost certain to leave this month, Atalanta's creative burden is firmly on Ilicic's shoulders, and he did not disappoint here.
He created five openings from crosses, one of which set up Romero's opener, and ended with more shots (seven) and more on target (three) than anyone else.
No milestone magic from Zlatan
Zlatan Ibrahimovic was making the 600th appearance in regular-season league competition of his storied career, but this was not much of a way to celebrate.
The 39-year-old played the whole game but had just 35 touches of the ball, completed only 15 passes and did not muster a shot on target.
Key Opta Facts:
- Atalanta have collected 36 points, a record for them after 19 Serie A matches in a season with 20 teams.
- They have equalled their largest away win against Milan in Serie A: 3-0 in March 1941.
- Ilicic has been involved in seven goals in six matches with Atalanta against Milan (four goals and three assists), a Serie A best for him with his current team.
- Milan have ended their longest streak of games with goal in Serie A (38 matches).
- It is the first time Milan have lost with a margin of three or more goals in Serie A for since December 2019 when they lost 5-0, also against Atalanta.
- Tonali played his 50th match in Serie A and is the youngest player to reach this milestone since 2019-20.
Milan face Inter in the Coppa Italia quarter-finals on Tuesday before heading to Bologna in Serie A next Saturday. Atalanta meet Lazio twice next week, in the cup and then the league.