Ruslan Malinovskyi struck late as Atalanta won 1-0 to claim their first league victory over Juventus in two decades and move third in Serie A at the expense of the Italian champions on Sunday.
Atalanta are two points behind second-placed Milan who beat Genoa 2-1 thanks to an own-goal from Gianluca Scamacca to claim their first win at the San Siro in over two months.
Juventus were playing without injured star striker Cristiano Ronaldo in the match between the Champions League rivals in Bergamo.
Substitute Malinovskyi broke the deadlock three minutes from time with a goal which took a deflection off Alex Sandro to send Juve goalkeeper Wojciech Szczesny the wrong way.
Juve’s nine-year reign as champions looks set to end, and they are now face a battle for a Champions League place.
They sit fourth and risk being overtaken by fifth-placed Napoli who play leaders Inter later Sunday.
Atalanta had not beaten Juventus in Serie A in 20 years going back to February 2001.
In Ronaldo’s absence, Paulo Dybala got his first start in over three months after recovering from a knee injury.
But the Argentine failed to make much of an impact and was substituted in the 68th minute despite setting up Weston McKennie for a chance the American missed on 38 minutes and sending a free-kick wide after the hour mark.
Alvaro Morata missed two chances to break through, the first cleared off the line in the 34th minute by Berat Djimsiti following a Federico Chiesa cross and the other saved by Pierluigi Gollini with 14 minutes remaining.
To add to Juventus coach Andrea Pirlo’s woes forward Chiesa limped off after an hour.
Top Atalanta striker Luis Muriel fired over the bar after an hour with Duvan Zapata heading wide after 70 minutes.
Malinovskyi came off the bench with quarter of an hour to go and proved decisive.
His long-range free-kick was parried by Szczesny before he beat the Polish keeper to hand Atalanta a fifth consecutive win and boost confidence before meeting Juve in next month’s Italian Cup final.
Milan end San Siro hoodoo
In Milan, Scamacca’s 68th-minute own goal put Milan eight points behind city rivals Inter and kept them on course for a return to Champions League football next season.
Stefano Pioli’s side had not won their last six games in the San Siro in all competitions and were playing without suspended forward Zlatan Ibrahimovic.
“We wasted a lot, we could have finished it earlier, but the important thing is the spirit to stay in the game until the very end,” said Pioli, who has given up on catching Inter.
“Inter have taken too many points to think that we can still fight for the Scudetto (league title).
“Winning was important. We will have to face important teams, Atalanta, Juventus, Lazio, from here to the end they will all be difficult.”
Ante Rebic put Milan ahead in the 13th minute with Rafael Leao, taking the place of Ibrahimovic, missing a chance for a second minutes later.
A Mattia Destro header against his former club pulled 14th-placed Genoa level eight minutes before the break.
Mario Mandzukic came off the bench for his first appearance in over two months just after the hour and had a role in the winning goal, which Scamacca guided past his own goalkeeper from a Hakan Calhanoglu corner.
Genoa missed a double chance to pull level again with four minutes to go when Andrea Masiello and Valon Behrami were denied by Simon Kjaer and Fikayo Tomori’s goal-line clearance to hand Milan their first home win since February 7.
The seven-time European champions are aiming to return to the Champions League for the first time since the 2013-2014 season.