Half time: 0 - 2
Full time: 2 - 2
Shots: 14 - 15
Shots on target: 5 - 7
Corner Kicks: 4 - 5
Possession: 39% - 61%
Seven yellow cards dished out in all by referee Jose Sanchez in this one. Alvaro Gonzalez, Samuel Castillejo, Roger Martinez and Salem Al-Dawsari being booked for Villarreal, and Luka Modric, Casemiro and Toni Kroos having their names taken for Real Madrid.
Rather than use this game to rest key players as anticipated, Zinedine Zidane instead put out what was very close to a first choice staring eleven, with Luca Zidane starting in goal the only player unlikely to start next week's Champions League final.
Playing the big guns seemed to pay off early as Real quickly established a two-goal cushion in the game.
It was Gareth Bale who got the ball rolling in the eleventh minute. The Welshman capitalising on hesitation in the Villarreal defence to pinch the ball on the edge of the area, before cutting inside to fire into the bottom left corner.
The second came in the 32nd minute. A lovely outside of the foot cross from Marcelo on the left finding the head of Cristiano Ronaldo around six yards from goal. No mistake from the Portuguese who headed into the bottom right corner. 0-2 at half time.
The home side began to pour on the pressure in the second half and got one back in the 70th minute. Roger Martinez receiving the ball in the left-hand side of the 18-yard box, before cutting back inside and firing a beauty into the top right corner.
The equaliser came in the 85th minute, and keeper Luca "son of Zinedine" Zidane, didn't cover himself in glory here. Racing out to try and intercept a through ball, he instead only flapped at it, allowing Samuel Castillejo to move past him and tap in. 2-2 final score.
Having needed to win in order to have any chance of overhauling Atletico Madrid in the race to be second, this draw sees Real Madrid end the 2017/18 La Liga campaign in 3rd place.
Villarreal hold off Real Betis to finish a very respectable fifth and head into the Europa League next season.