Cristiano Ronaldo marked his return to action by stepping off the bench to score twice in a 4-1 Serie A win for Juventus at Spezia.
Ronaldo, who was forced to miss Juve’s previous four matches after testing positive for Covid-19 in October, scored three minutes after coming on to give his side a second-half lead.
The Portuguese completed the scoring with a Panenka-style penalty as Juve moved up to second in the table.
Spezia’s Tommaso Pobega had cancelled out Alvaro Morata’s opener for Juve in the first half before Ronaldo rounded the goalkeeper to restore his side’s lead in the 59th minute.
Adrien Rabiot put Juve 3-1 up and Ronaldo added his second from the spot in the 76th minute after Federico Chiesa had been fouled.
Ibrahimovic set up Franck Kessie for Milan’s first-half opener and scored their winner with a close-range overhead kick after Rodrigo De Paul had equalised for the home side from the spot early in the second half.
Bremer headed Torino level after Andreas Pereira’s first-half opener for Lazio and Andrea Belotti’s penalty put the hosts 2-1 ahead at half-time.
Lazio equalised through Sergej Milinkovic-Savic’s free-kick and after Sasa Lukic had appeared to fire Torino’s late winner, Immobile converted a penalty against his former club in the fifth minute of added time before Caicedo’s dramatic winner.
Sassuolo extended their unbeaten start to the season to six matches and moved into second place after winning 2-0 at Napoli.
Manuel Locatelli’s second-half penalty broke the deadlock and Maxime Lopez made sure of the points with a second in added time.
Roma are seventh after goals from Leonardo Spinazzola and Pedro Ledesma secured them a 2-0 home win against Fiorentina.
Sampdoria were held 1-1 at home by derby rivals Genoa after visiting striker Gianluca Scamacca cancelled out Jakub Jankto’s opener before the interval.
David Silva scored his first goal for Real Sociedad as they returned to the top of LaLiga with a 4-1 win at Celta Vigo.
Former Manchester City midfielder Silva and Mikel Oyarzabal put Sociedad 2-0 up at the break before Willian Jose’s double, while the home side replied through Iago Aspas’s penalty before they had defender Jose Fontan sent off for a late second booking.
Valencia salvaged a 2-2 home draw against Getafe courtesy of Carlos Soler’s stoppage-time penalty in a dramatic finale.
Yunus Musah gave Valencia a half-time lead and despite the 50th-minute dismissal of Thierry Correia, they held on until Cucho Hernandez headed a late equaliser.
Angel Rodriguez fired Getafe ahead in stoppage time, but Soler converted from the spot after Djene Dakonam’s foul on Maxi Gomez, while Damian Suarez was sent off for the visitors for his second yellow card.
Granada remain fifth after being held 1-1 at home by Levante while Cristian Tello scored twice as Real Betis beat Elche 3-1 to stay seventh.
In Ligue 1, Lille missed the chance to go level on points with leaders Paris St Germain after they were held 1-1 at home by 10-man Lyon.
Jonathan Bamba gave Lille a first-half lead, but Lyon equalised through Mehmet Zeki Celik’s own goal before their Brazilian defender Marcelo was sent off for two yellow card offences early in the second period.
Nice won 3-0 at Angers to close to within four points of the leaders in fourth place thanks to goals from Rony Lopes, Pierre Lees-Melou’s penalty and Hichem Boudaoui.
Kevin Volland’s double and further goals from Wissam Ben Yedder (penalty) and Gelson Martins secured Monaco a comfortable 4-0 home win against Bordeaux.
Stephy Mavididi’s first-half goal clinched Montpellier a 1-0 win at St Etienne and Metz maintained their impressive start by winning 1-0 at Nimes.
Reims won 2-1 at home against Strasbourg and Lorient drew 0-0 at Dijon.
In the Bundesliga, Bayer Leverkusen moved up to fourth after a 4-2 win at Freeiburg, while Hertha Berlin were held 1-1 at home by Wolfsburg.