Ciro Immobile scored twice in a 2-1 Lazio victory in Turin as Paulo Dybala failed to save Juventus from suffering their first home defeat in Serie A in more than two years.
A product of the Juve academy who was recently a formidable goal-scoring force for their cross-town rivals Torino, Immobile continued his hot streak this term with a leveller shortly after the break.
The Bianconeri then paid the penalty for Gianluigi Buffon’s last-man foul on Immobile as the Neapolitan converted a winner to confirm Juve’s first league loss here since August 2015.
That outcome could have been avoided had Argentinian substitute Dybala stuck away a stoppage-time spot kick, but Thomas Strakosha denied the prodigious No. 10 with a flying parry.
Earlier, Douglas Costa had opened his account for Massimiliano Allegri’s reigning champions.
It fell to Blaise Matuidi, Juve’s summer signing from PSG, to take the first shot of the encounter at the Allianz Stadium.
The France midfielder took aim from distance after collecting Mario Mandzukic’s back-heeled pass, but he could not find the target.
Costa had better luck in the 23rd minute as he opened the scoring with a close-range finish.
Strakosha made a fine save to keep Sami Khedira’s left-footed drive out but the ball fell to Costa for a goal from two yards out.
Play was briefly halted as referee Paolo Mazzoleni consulted the VAR — Costa looked marginally offside before scoring. The goal was ruled valid, though, as Angola’s Bastos was playing him on.
Lazio tried to hit back through the in-form Immobile, who got his head to Adam Marusic’s cross only to see Buffon snaffle the ball.
Khedira came perilously close to doubling Juve’s lead when launching an effort towards the top corner, where Strakosha arrived to flick out a hand and keep the scoreline tight.
The Albanian goalkeeper would, however, suffer another scare before half-time as Gonzalo Higuain stole the ball from his feet before clattering the crossbar.
How Juve will have hoped those chances had crossed the line.
Two minutes after the restart Immobile hit his 10th league goal of the season — the equaliser — from a pinpoint Luis Alberto pass.
As the Bianconeri reorganised in pursuit of a quick-fire response, Buffon was caught bringing Immobile down after the Italy forward dribbled past Giorgio Chiellini.
Mazzoleni pointed to the spot and Immobile found the back of the net with a precise attempt.
Allegri made two personnel changes: replacing Costa with Federico Bernardeschi and choosing to play his ace card as Dybala entered the fray for Khedira.
Dybala, who had been rested with the Champions League clash against Sporting Lisbon in mind, soon produced an excellent flick before volleying against a wall of Lazio defenders.
Visiting boss Simone Inzaghi reacted by throwing on former Manchester United winger Nani, a recent loan capture from Valencia, while taking off his star act Immobile with 15 minutes remaining.
Yet in a frantically contested finale, it was Dybala who threatened to spoil Lazio’s big night and spare Juve’s blushes.
First, he rattled a post with Strakosha beaten. Then he stepped up after Patric was adjudged to have impeded Bernardeschi.
For the second time in as many games, his aim was off and Juve’s unbeaten status was shattered.