Cristiano Ronaldo on target but can't prevent a first defeat for Juventus after Juan Cuadrado sees red against Lazio
Portuguese opens the scoring before Felipe, Milinkovic-Savic and Caicedo reply with Juve manager fuming at sending-off
Lazio pulled off a stunning fightback to inflict a first defeat of the season on Serie A leaders Juventus, who finished the match at Stadio Olimpico with 10 men following a controversial red card for Juan Cuadrado.
Juve had won 12 and drawn two of their matches under new manager Maurizio Sarri in the league and looked well set to maintain their unbeaten start to the campaign when Cristiano Ronaldo put the Italian champions ahead on 25 minutes.
Luiz Felipe levelled for Lazio in first-half stoppage time before the game swung in the capital club's favour when Juve wing-back Cuadrado tangled with Manuel Lazzari as the Lazio player was sent clear.
Though a fair distance from goal, the referee deemed Lazzari had been denied a goalscoring chance and brandished a red card to the Colombia international after reviewing the incident on a pitchside monitor.
The decision sparked angry protests among the Juve players, and proved the turning point in the match as Lazio scored twice in the final 20 minutes to record a 3-1 victory.
Juventus stayed second, two points behind Inter Milan, with 36 points from 15 games while Lazio, who are third, closed the gap on their opponents to three points after their seventh successive league win.
"I don't agree that it was a clear scoring chance because the ball was going away from the goal," said Sarri. "A yellow card would have been the fair decision, it seemed a bit harsh but that's how it went.
"When the game seemed to be more balanced, the red card changed everything ... The title race? Lazio are there as well as ourselves and Inter."
Juventus dominated the opening exchanges and went ahead when Ronaldo's flicked pass released Rodrigo Bentancur on the right, the Uruguayan played a first-time pass into the area and Ronaldo turned the ball in from close range for his seventh league goal of the season.
Lazio came back strongly and after a series of crosses into the area and penalty appeals, their pressure was rewarded when Luis Alberto swung in an inviting cross for Luiz Felipe to score with a glancing header.
Luis Alberto also set up the second when he launched a ball over the Juventus defence and Sergej Milinkovic-Savic brilliantly pulled it down and flicked it past Wojciech Szczesny.
Lazio were awarded a penalty after Szczesny tripped Joaquin Correa but Immobile, Serie A's leading scorer with 17 goals, saw both his spot kick and follow-up brilliantly saved by the Pole.
With Juve committing men forward in search of an equaliser, a lightning counter saw Felipe Caicedo seal victory with virtually the last kick of the game.
"This is an excellent period for us," said Lazio manager Simone Inzaghi. "We need to be ambitious and look ahead. My lads did an extraordinary job tonight."
Updated: December 8, 2019 10:51 AM