Juventus' hopes of winning a 10th consecutive Serie A title took another blow on Sunday with a 1-0 home loss to lowly Benevento as AC Milan closed the gap on leaders Inter Milan with a hard-fought 3-2 win at Fiorentina.
Adolfo Gaich scored the only goal in the 69th minute at Juve's Allianz Stadium following a bad pass across his own penalty area by midfielder Arthur.
Andrea Pirlo's side stay third, 10 points behind Inter whose match against Sassuolo was postponed because of a Covid-19 outbreak at the league leaders.
Second-placed Milan are four points ahead of the reigning champions after they recovered from their Europa League exit to Manchester United by cutting the deficit to Inter to six points with a 3-2 win over Fiorentina.
For Juve, who have 11 games left to play this season, it was another blow after being dumped out of the Champions League at the last 16 stage by Porto earlier this month.
"We performed poorly, in every aspect," said Pirlo.
"We have to continue to believe in the title. The objective does not change, it's the mindset which must."
Serie A top scorer Cristiano Ronaldo, who has netted 23 times in the league this season, drew a blank in Turin a week after reaching 770 goals to beat Pele's all-time mark of 767, with Benevento goalkeeper Lorenzo Montipo pulling off a string of fine saves.
- Zlatan hails 'important' win -
Benevento broke the deadlock following Arthur's horrendous pass across the face of goal towards Danilo, which allowed Gaich to pounce and score his second goal in five games since arriving on loan from CSKA Moscow.
Montipo denied Ronaldo twice late on as Juve pushed for a leveller, first from close range with 10 minutes to go and again in the final minute, with Danilo sending the subsequent rebound over the bar.
Benevento now sit seven points away from the drop zone in 16th.
In Florence, Zlatan Ibrahimovic returned to the starting line-up for Milan for the first time in over three weeks and scored after nine minutes following Simon Kjaer's ball over the top.
But Milan needed Brahim Diaz's 57th-minute strike and a Hakan Calhanoglu winner with quarter of an hour to go to snatch victory.
A curling Erick Pulgar free-kick had pulled Fiorentina level with Franck Ribery then putting the hosts ahead six minutes after the break.
"It was very important to win like this after the defeat against Manchester United," said Ibrahimovic, who at 39 became the oldest player to score 15 goals in a single Serie A season.
- Mertens century -
Atalanta bounced back after their Champions League exit to Real Madrid with a 2-0 win at Hellas Verona to consolidate fourth place, equal on points with Juventus.
Ruslan Malinovskyi scored the first from the penalty spot after a Federico Dimarco handball in the 33rd minute in Verona.
Duvan Zapata added a second before the break, after an earlier effort hit the post, the Colombian sweeping the ball past Marco Silvestri into an empty net, as Verona fell to a third successive defeat to stay ninth.
Atalanta are two points ahead of Napoli who beat Champions League rivals Roma 2-0 at the Stadio Olimpico thanks to a Dries Mertens brace.
Mertens curled in the opener from a free-kick in the 27th minute and nodded in a Matteo Politano cross seven minutes later to bring his tally to 100 Serie A goals since joining Napoli in 2013.
Roma are the only Italian side left in Europe and showed signs of fatigue after their Europa League trip to Ukrainian side Shakhtar Donetsk on Thursday.
"Perhaps we don't have the mentality required to compete against these sort of teams," said Roma coach Paulo Fonseca, whose side have struggled for results against Serie A's top teams.
"In the first half the team looked to be without courage ... When we are afraid of losing, or afraid of playing, it all becomes a lot harder."
Lazio recovered from their Champions League elimination to Bayern Munich with a 1-0 win at Udinese thanks to an Adam Marusic goal.
Simone Inzaghi's side are seventh but now just one point behind their city rivals with a game in hand.