Hellas Verona produced a huge upset by coming from behind to beat Serie A leaders Juventus 2-1, inflicting a third defeat of the season on the Italian champions.
Cristiano Ronaldo set a new Juventus record by scoring in a 10th consecutive league game to put the visitors in front at the Stadio MarcAntonio Bentegodi after 65 minutes.
Yet Ivan Jurics side left the visitors stunned as Fabio Borini struck an equaliser before a late penalty from substitute Giampaolo Pazzini completed the comeback.
Juve remain on top of the table on 54 points, but Inter Milan will draw level with them if they beat AC Milan on Sunday, and third-placed Lazio will go one point off top if they win at Parma.
Verona moved up to sixth place on 34 points, stretching their unbeaten run to eight games.
"What we need to realise is that winning is not to be taken for granted," Juve coach Maurizio Sarri told DAZN.
"We have to work harder, get dirty when we need to and not rest on our laurels.
"This team is accustomed to winning comfortably in recent years and we have to get it into our heads that we cant afford to waste points."
Earlier, Moreno Longo's debut as Torino coach ended in defeat as his side were beaten 3-1 by Sampdoria.
Walter Mazzarri parted ways with Torino earlier this week after a run of four consecutive defeats.
Longo, however, could not turn the tide as Simone Verdi's second-half opener was cancelled out by a Gaston Ramirez double, before Armando Izzo was sent off as he conceded a penalty that was converted by Fabio Quagliarella.
Atletico back to winning ways
Atletico Madrid ended a barren run of five games in all competitions without a win with a narrow 1-0 victory at home to Granada in La Liga on Saturday, inspired by returning captain Koke.
The midfielder was making his first appearance in the league since mid-December and wasted little time in making an impact on his struggling team, setting up Angel Correa to score the only goal of the game in the sixth minute.
- Pep urges Messi to stay at Barcelona
- Analysis: Messi's Barcelona future
- Abidal in future talks amid Messi row
Atletico were comfortable in the first half but began to suffer in the second and it took a world-class save from goalkeeper Jan Oblak to prevent Granada's Roberto Soldado levelling with a backheel.
The win lifted Atletico into fourth in the standings on 39 points after 23 games, 10 behind leaders Real Madrid who play away to Osasuna on Sunday.
Payet wins it for Marseille
Marseille consolidated second place in Ligue 1 as Dimitri Payet's second-half strike gave them a 1-0 win over bottom side Toulouse on Saturday.
Payet struck six minutes into the second half to put Marseille on 49 points from 24 games, trailing leaders Paris Saint-Germain, who host Olympique Lyonnais on Sunday, by nine points.
Third-placed Stade Rennais are eight points behind OM after they were held to a goalless draw at home by Brest.
Toulouse, who have suffered 17 league defeats this season, have 13 points.
Marseille were made to wait to open the scoring by a resolute Toulouse side at the Stade Velodrome, but Payet broke the deadlock in the 51st minute with a trademark curled effort from 25 metres.
It was Payet's eighth league goal of the season.
The Provence side, who were once again helped by a sterling performance from keeper Steve Mandanda, have not yet conceded a single goal in Ligue 1 in 2020.
Elsewhere, the league's top scorer Wissam Ben Yedder and Islam Slimani struck late as Monaco claimed a 2-1 win at Amiens to jump up to fifth on 35 points, five behind fourth-placed Lille.
Leverkusen rally vs Dortmund
Bayer Leverkusen scored two late goals to beat Borussia Dortmund 4-3 on Saturday and deal a blow to Dortmund's ambitions of winning the German title.
Kevin Volland scored twice for Leverkusen early on, but it was substitute Leon Bailey who secured the win, scoring off Volland's assist for 3-3. A minute later the Jamaican's backheel pass fed Daley Sinkgraven to send in the cross for Lars Bender to head in the winning goal.
This had all come after Emre Can, on his league debut for Dortmund after arriving from Juventus last week, hit a majestic curling shot from 20 yards to give his new team a 2-1 lead.
A win would have brought Dortmund level on points with leader and defending champion Bayern Munich. Dortmund now could end the weekend six points off the top if Bayern beats Leipzig on Sunday.
Leverkusen closed to two points off the Champions League places.