Cristiano Ronaldo and Gareth Bale both scored as Real Madrid staged a remarkable late comeback from two goals down to win 3-2 at Villarreal and stay top of La Liga on Sunday.

Substitute Alvaro Morata got the winner in the 83rd minute to complete a 19-minute turnaround that keeps Zinedine Zidane's side on course for their first La Liga triumph since 2012.

Real are top on 55 points, one ahead of Barcelona who beat Atletico Madrid 2-1, and three clear of Sevilla, while Zidane's side have a game in hand on both of their title rivals.

Villarreal's Manu Trigueros lashed home from inside the area to put the hosts ahead five minutes after the break and Cedric Bakambu doubled the lead in the 57th with a fine finish past Keylor Navas, though he was fortunate not to be ruled offside.

Real looked destined for a second loss in a week on the east coast after Wednesday's 2-1 reverse at Valencia but Bale, making his first start since November, headed a goal back in the 64th before Ronaldo levelled with a penalty 10 minutes later.