I don't think anyone expected Real Madrid to lose this game. They must have been surprised by this result. I would say that the match was actually in the middle. Both teams played as if they wanted to win, but of course there has to be one winner. The first half ended in a draw with mutual goals. In the second half, real madrid was the team that started fast and scored within 3 minutes. But they couldn't stop the goals they conceded and had to be defeated.
As I posted before, that in this match both teams will score goals. Yes, I'm not at all surprised by this result. because, considering four days later Madrid will host Chelsea. that's why Don Carlo was reluctant to play his main full starter, especially for several defenders and several important players in midfield. therefore, I have the consideration that Villarreal has a chance to score. it's just that, I didn't suspect that Don Carlo didn't play Valverde as the main starter, but preferred Asensio as a wing midfielder. I don't know what Don Carlo was thinking, but it should have been better to use Asensio as a winger.
Another important note, Madrid's defense played underperform. it's actually normal, because Ancelotti prefers other options than his flagship defender. but the results did not match expectations, in the end Villareal was able to take advantage of the momentum to win the match over El Real. on the other hand, this result makes Barcelona more profitable, especially if they win the game over Girona. that way, Barcelona is getting closer to the La Liga trophy.