Na ongeveer een kwartier kwam Real Madrid op voorsprong. Pau Torres veranderde een voorzet van Marco Asensio dusdanig van richting dat hij daarmee zijn eigen doelman passeerde. Nog voor rust werd het gelijk door Samuel Chukwueze, die scoorde na voorbereidend werk van Giovani Lo Celso.
Meteen na de hervatting zette Vinícius Júnior de thuisclub na een solo opnieuw op voorsprong. Villarreal herstelde zich echter goed. José Luis Morales maakte gelijk, Chukwueze zette de club op voorsprong.
Eerder in de week won Real Madrid ruim bij Barcelona (0-4) en plaatste zich daarmee voor de finale van de strijd om de Spaanse beker. Woensdag speelt de club in de Champions League tegen Chelsea.
Barcelona speelt maandag in La Liga tegen Girona en kan verder uitlopen.