Real is in second place with 38 points tied with fourth-placed Barca Atlético Madrid On Sunday, while Villarreal’s third straight league win moved them up to fifth place.
For the first time in the club’s 121-year history, Madrid made a starting XI without a single Spanish player.
Villarreal dominated from the start Francis Coquelin Shaking the woodwork in the fifth minute before Jeremy Pino The goalkeeper refused Thibaut Courtois From close range, but the hosts could not break the deadlock in the first half.
However, there was no let up from Villarreal after the break and the pressure was on in the 47th minute when Moreno set Pino free to fire a powerful shot into the net.
Villarreal got the handball back in short order Juan Foyth Gave the visitors a penalty, which was expertly dispatched Karim Benzema on the hour — moving him level with Madrid great Alfredo Di Stefano for all-time La Liga goals.
Two minutes later, the hosts got their own penalty David Alaba Handled the ball. As Madrid’s opposition calmed down, Moreno converted from the spot after sending Courtois the wrong way to seal victory.