Champions Juventus endured their first Serie A loss of the season when, after seeing Juan Cuadrado sent off after 18 minutes on Tuesday, they crashed 3-0 at home to modest Fiorentina.
Fiorentina, who after the return of coach Cesare Prandelli had struggled to win any of their previous six league matches, was also aided by some disastrous defending by the hosts, with Leonardo Bonucci enduring an off-day in particular.
Dusan Vlahovic shocked the Turin side by giving the visitors the lead in the third minute before Alex Sandro put through his own goal and Martin Caceres added a third after more poor defending in the last quarter of an hour.
The loss, Juve’s worst at Allianz Stadium since it opened nine years ago, leaves them fourth after 13 matches with 24 points, seven behind leaders AC Milan, and raises concerns about their potential to continue their streak of nine consecutive titles.
Fiorentia is in fifteenth position with 14 points.
When Franck Ribery released Vlahovic with a through ball and the Serb holding off Matthijs De Ligt before lifting the ball over keeper Wojciech Szczesny, Fiore got off to a flying start.
Juve’s problems mounted when Cuadrado grabbed Gaetano Castrovilli’s shin with a risky studs-up tackle.
The referee gave a yellow card but, after viewing the incident on the pitchside screen, changed it to red.
After another Bonucci mistake, Szczesny tipped away a Castrovilli shot, but Juve also threatened with Ronaldo shooting into the side-netting and with a long-range effort, also testing keeper Bartlomiej Dragowski.
Before Juve fell apart in the closing stages, Ronaldo had a header disallowed for offside after the break.
Bonucci made a complete mess of an effort to clear the cross of Cristiano Biraghi, and in the 76th minute the ball struck Alex Sandro and sailed into the net.
Bonucci had his pocket taken up by Ribery five minutes later, and the French veteran picked Biraghi, whose cross was tapped in by Caceres to complete Juve’s utterly miserable night.