AC Milan scored three goals in six minutes in a stunning turnaround as they came from behind to beat Serie A leaders Juventus 4-2. 

Adrien Rabiot and Cristiano Ronaldo scored quickfire goals early in the second half to give Juve a 2-0 lead. 

But Milan were awarded a 62nd minute penalty after a VAR check deemed Leonardo Bonucci guilty of a handball and Zlatan Ibrahimovic converted from the spot. 

Ibrahmovic then turned provider to set up Franck Kessie's 66nd-minute equaliser before Rafael Leao completed the turn about seconds later. 

Ante Rebic added a fourth with 10 minutes to go. 

But Juve retained their seven-point advantage at the top of the standings after second-placed Lazio were beaten 2-1 by lowly Lecce, who climbed out of the drop zone with the win. 

Felipe Caicedo capitalised on a Gabriel mistake to put Lazio ahead five minutes in, but Khouma Babacar headed Lecce level before Fabio Lucioni scored what proved to be the winner two minutes into the second half. 

It could have been worse as Mancosu missed a penalty for Lecce, while Lazio defender Patric was sent off in stoppage time for biting an opponent. 

Lee Kang-In's 89th minute goal earned Valencia 2-1 win over Real Valladolid, after Victor Garcia had cancelled out Maxi Gomez's opener. 

Third-placed Atletico Madrid were frustrated in a 1-1 draw at Celta Vigo. Alvaro Morata put Atletico ahead just one minute in, but Fran Beltran levelled four minutes into the second half.