The Serie A title race is far from over, Juventus coach Massimiliano Allegri warned after a first-half opener by Chinese Super League target Nikola Kalinic paved the way for Fiorentina's shock 2-1 defeat of the champions.
Juventus travelled to Florence looking for their fifth consecutive win since suffering a shock 3-1 loss at Genoa at the end of November.
But not for the first time this season, the Turin giants were exposed by a committed, battling performance by a host side.
Kalinic, the subject of a reported big-money move to Tianjin Quanjian, paved the way for a memorable win with a 37th-minute opener that was probably celebrated more in Rome and Napoli than Florence.
Milan Badelj added Fiorentina's second and although Gonzalo Higuain reduced the arrears on 58 minutes Juve couldn't muster an equaliser.
Juve's fourth defeat in 19 games leaves the champions with just a one-point lead on Roma, although the five-time consecutive champions have a game in hand.
Napoli are four points off the pace in third with Lazio a point further adrift.
With Roma, Napoli, Lazio and Inter all winning their games, the Old Lady of Turin is well aware a bid for a record sixth straight title could be littered with obstacles.
"This shows that the championship is far from finished," said Allegri, who saw midfield maestro Paulo Dybala spurn the chance to add to Higuain's 58th minute strike when he ballooned over late on.
"Roma and Napoli are just behind us, so it could go right to the end. This (defeat) should remind us all that whenever it comes to playing Juventus, opposition teams give it more than 100 percent."
Although Juventus will be fancied to take the points from their postponed match against Crotone on February 8, the champions' title rivals will be quietly celebrating.
Roma travelled to Udinese's Friuli stadium looking to make it three wins on the trot having suffered their last reverse in a 1-0 defeat at Juventus in December.
The visitors went in front on 12 minutes when Radja Nainggolan turned on Kevin Strootman's chip from deep in midfield to beat Orestis Karnezis with a right-footed volley from eight yards.
Luciano Spalletti's men should have doubled their lead when a penalty was awarded minutes later for handball in the area, but Edin Dzeko fired his effort over.
"It's a win that allows us to keep track with the teams below us that also won their games," Spalletti told Radio Rai.
Referring to Dzeko's miss, he added: "The only regret I have is we didn't settle the match earlier."
Napoli are also biting at Juve's heels.
Their last league defeat also came at Juventus, at the end of October, but at home to league strugglers Pescara the Azzurri were kept scoreless until Lorenzo Tonelli, Marek Hamsik and Dries Mertens hit one apiece in a fruitful second half.
For Napoli coach Maurizio Sarri, former Empoli defender Tonelli's battling qualities were an example to follow.
"He battles more than his team-mates," Sarri told Rai Sport.
"And if he can manage to transmit that to the rest, it will stand us in good stead."
Lazio remain fourth, at five points behind Juventus, after Ciro Immobile's second-half penalty secured the points in a 2-1 win over Atalanta that saw the coaches of both teams, Simone Inzaghi and Gianpiero Gasperini, sent off for dissent after angry exchanges with the referee.
Having suffered a fruitless first half, a half-time talk with Lazio coach Inzaghi, did the trick for Immobile.
"I told him to stay calm and he would soon score," said Inzaghi. "He's a great player for us. Even when he's not scoring, he's creating chances."
AC Milan, in fifth at nine points adrift, are away to Torino on Monday.
Inter Milan moved up to sixth with a 3-1 win over Chievo on Saturday when Mauro Icardi hit the opener to stretch his league-leading goals tally to 15 for the season.