AC Milan snapped a run of two straight league defeats to keep the gap to their city rivals to four points with a hard-fought 2-1 win at Roma.
Franck Kessie’s first-half penalty put the visitors in front and after Jordan Veretout equalised for the hosts, Ante Rebic’s 58th-minute winner sealed Milan the points.
Leonardo Semplici celebrated his first match in charge of Cagliari by ending their 16-match winless run at bottom club Crotone.
A 56th-minute opener from Leonardo Pavoletti and a Joao Pedro penalty gave the visitors a 2-0 win despite the dismissal of Charalampos Lykogiannis.
Atalanta claimed their third straight win as goals from Ruslan Malinkovskiy and Robin Gosens saw them beat hosts Sampdoria 2-0, while a late strike from Ilija Nestorovski proved enough for Udinese to edge past Fiorentina.
Goals from Dries Mertens and Matteo Politano proved enough for Napoli to overcome struggling Benevento 2-0 despite the late dismissal of Kalidou Koulibaly.
Atletico Madrid restored their five-point lead at the top of La Liga with a 2-0 win at Villarreal.
Atletico were gifted a 25th minute opener by a Pedraza own goal, then Joao Felix made the points safe for the visitors in the 69th minute.
Cadiz failed to build on last week’s draw at Barcelona as they fell to a late Juanmi goal at home to Real Betis, extending their winless league run to eight games.
Jeison Murillo scored deep into injury time to salvage a 1-1 draw for Celta Vigo at home to Real Valladolid, who had led through a Fabian Orellana strike.
Elche dropped deeper into relegation trouble as they fell to a 2-1 defeat at Granada, for whom Antonio Puertas scored a 79th-minute winner.
Captain Jose Fonte salvaged a point for Ligue 1 leaders Lille but they had to be content with a 1-1 draw at home to Strasbourg.
Ludovic Ajorque put the visitors in front in the 36th minute but Fonte’s 86th-minute leveller ensured his side will end the weekend with a two-point advantage at the top.
Third-placed Lyon failed to make up ground as they were held to a 1-1 draw at Marseille.
Karl Toko Ekambi struck Lyon in front but Arkadiusz Milik levelled from the penalty spot and Lyon’s cause was not helped by the 70th-minute sending-off of Lucas Paqueta for a second yellow card.
Monaco had to wait until 14 minutes from time to break the deadlock at home to Brest but late goals from Stevan Jovetic and Kevin Volland continued their strong recent run.
Lens fought back from 2-0 down to grab a 2-2 draw at Angers with Arnaud Kalimuendo grabbing the equaliser two minutes into injury time.
Armand Lauriente scored twice including an 86th-minute winner as struggling Lorient boosted their survival prospects with a 2-1 win over St Etienne.
Nimes held on for a 1-1 draw at home to Nantes despite the late sending-off of Florian Miguel, while Reims and Montpellier finished goalless.
In the Bundesliga, Bayer Leverkusen endured their ninth game without a win in all competitions with a 2-1 home defeat to Freiburg.
Ermedin Demirovic and Lucas Holer put the visitors in front with two goals early in the second half before Leon Bailey reduced the deficit.
Andre Hahn’s 25th-minute goal gave a boost to Augsburg’s survival prospects as they won 1-0 at Mainz, while Union Berlin and Hoffenheim shared the points from a 1-1 draw.