Serie A leaders Juventus suffered a shock 2-1 defeat at Verona as the battle for the scudetto took another twist.
Douglas Costa saw an early effort rattle the crossbar before the hosts – unbeaten in seven league games – had a goal ruled out by VAR for offside after Marash Kumbulla's glancing header from a free-kick.
Cristiano Ronaldo struck the post late in the first half and then broke the deadlock following a swift counter attack on 65 minutes.
Verona, though, were level with 15 minutes left when Fabio Borini latched onto an error from Miralem Pjanic and produced a cool, angled finish.
The home fans were screaming for a penalty after Leonardo Bonucci deflected a header from Marash Kumbulla onto the crossbar with a raised arm.
The referee reviewed the incident on the pitchside monitor, and awarded a spot-kick, which substitute Giampaolo Pazzini crashed past Wojciech Szczesny to cause an upset.
Inter could now go level on points with Juventus at the top of the table – if they win the Milan derby on Sunday, while Lazio can also close to within a point.
Earlier, Atalanta had consolidated their place in the top four after coming from behind to win 2-1 at Fiorentina, while Torino started life under new boss Moreno Longo with a 3-1 home defeat to Sampdoria and finished the match with 10 men.
Bayer Leverkusen ended Borussia Dortmund's Bundesliga charge with two late goals to seal a thrilling 4-3 win at the BayArena.
Dortmund – driven on by January signing Erling Braut Haaland – had been out to further close the gap on the top two as they went in search of a fourth straight league win following their midweek DFB-Pokal cup defeat at Werder Bremen.
Kevin Volland gave Leverkusen the lead after 20 minutes, which was soon cancelled out when Mats Hummels headed from a corner.
Midfielder Emre Can, playing against one of his former clubs, put Dortmund in front with a fine curling effort after 33 minutes, but Volland levelled at 2-2 just before half-time.
Raphael Guerreiro added a third for the visitors on 65 minutes but Leverkusen finished strongly as substitute Leon Bailey (81) slotted in before a towering header from captain Lars Bender (82) sealed a memorable win.
Elsewhere, Mainz bolstered their survival hopes with a 3-1 win at Hertha Berlin, where Robin Quaison scored a hat-trick to end a four-match losing run.
Klaus Gjasula's late goal saw bottom club Paderborn pick up a point after a 1-1 draw at Schalke, Werder Bremen's problems continued with a 2-0 home defeat by Union Berlin and Luca Waldschmidt's penalty just before half-time was enough to give Freiburg a 1-0 home win over Hoffenheim.
Wolfsburg saw defender Marin Pongracic sent off early in the second half, but battled to a 1-1 draw against strugglers Dusseldorf, who are 16th and four points from safety.
In LaLiga, Getafe strengthened their push for Champions League qualification with a 3-0 win over Valencia.
Jorge Molina broke the deadlock just before the hour and then added a well-taken individual effort on 67 minutes.
Valencia had defender Alessandro Florenzi sent off with 12 minutes left for a late tackle, and Jaime Mata scored Getafe's third on the break in the closing stages.
In Saturday's late kick-off, Angel Correa's early goal was enough to give Atletico Madrid a 1-0 home win over v Granada.
Valladolid and Villarreal drew 1-1 and Levante beat strugglers Leganes 2-0 with first-half goals from Ruben Rochina and Roger.
In Ligue 1, Dimitri Payet's fine 25-yard strike early in the second half gave Marseille a 1-0 win over bottom club Toulouse.
Rennes, though, lost ground in the chase for second place after being held to a 0-0 draw at home by Brest.
At the other end of table, strugglers Amiens lost 2-1 at home against Monaco, who scored twice in the last five minutes through Wissam Ben Yedder and Islam Slimani.
Dijon thought they had picked up a crucial win after a late goal from Stephy Mavidi – but Nantes snatched a dramatic 3-3 draw when Andrei Girotto looped in a header from a free-kick deep into stoppage-time.
Bordeaux came from behind win 2-1 at Metz and Nice went down 3-1 at home to Nimes.