In the second half, Sergio Ramos won a penalty which he took himself -- only to attempt to pass the ball to Benzema. The centre-forward was encroaching and retook the spot kick himself for his twenty-first league goal of the season, before Vicente Iborra's header reduced Madrid's lead and Marco Asensio had a goal ruled out in added time.
Real Madrid won the league. It's as simple as that. While Madrid have dominated in the Champions League over the last decade, Barca have had the edge domestically -- but this title, added to the one Zinedine Zidane won during his first spell in charge 2017, starts to redress that balance.
It has been argued that Madrid's response since the restart -- winning every game in a relentless display of consistency -- came when league football started to resemble a knock-out competition. That may be true, but either way, this victory in the most extraordinary circumstances was hard-earned and won't be forgotten, even if there weren't any fans in the stadium to see it in person.
It's hard to pick out any negatives on a night like this. It's true that Eden Hazard was quiet again in his first start in almost three weeks, but there is still time for the forward to come good in the Champions League, with the chance to rest his troublesome ankle before then.
Ramos' extraordinary penalty attempt would have left the captain red-faced if Benzema hadn't scored the retake, but fortunately it didn't matter.
Manager rating out of 10 (6 is average)
8 -- Zidane has long made it clear that he considers the league to be the truest test of a team's quality. He will be delighted with both his second title win as a coach and the flawless manner in which it has been achieved.
Zidane made just two changes to the team that beat Granada 2-1 on Monday, wide forwards Hazard and Rodrygo replacing Isco and Federico Valverde to see a 4-5-1 switch to a 4-3-3. Neither was particularly influential, but Zidane's substitutions later in the game were spot on.
Player ratings (1-10; 10 = best. Players introduced after 70 minutes get no rating)
GK Thibaut Courtois, 8 -- Another composed performance from the best goalkeeper in La Liga right now. Raced off his line to beat Xavi Quintilla to the ball in the second half and caught a knee to the face, before a vital double save in added time.
DF Dani Carvajal, 8 -- Involved in two key attacking moments, trying to lob keeper Asenjo early on when spotted by Ramos and found by Modric in the second half for a mazey run and left-footed shot.
DF Sergio Ramos, 7 -- The captain lifted the La Liga title at the Alfredo di Stefano stadium, his 22nd trophy won as a Real Madrid player. Burst forward in the second half to win the penalty and had the audacity to try to pass it.
DF Raphael Varane, 7 -- Varane's centre-back partnership with Ramos has been a big part of Madrid's success over the last month. Did well here up against one of La Liga's most in-form strikers, Gerard Moreno.
DF Ferland Mendy, 6 -- One of Madrid's most impressive players since the restart. Perhaps a little more disciplined than in recent games, but still got forward in the second half.
MF Casemiro, 7 -- Caught Villarreal's dangerous winger Chukwueze inside the first five minutes and escaped a booking. Won the ball back for Modric to create Madrid's opening goal.
MF Luka Modric, 9 -- Has looked as good as ever over the last month. Got into the box repeatedly in the first half, testing Asenjo, and set up Benzema's opener. Seven La Liga assists this season, his best ever tally.
FW Eden Hazard, 6 -- Back in the team after hurting his ankle against Espanyol and playing just eight minutes in four games since then. Beat Chakla on the left early on, forcing the defender to bring him down. Otherwise quiet and withdrawn after an hour.
FW Rodrygo, 6 -- Seems to have crept ahead of compatriot Vinicius in Zidane's pecking order. Did fairly well here in 60 minutes on the pitch.
FW Karim Benzema, 8 -- Scored his sixth and seventh goals since the La Liga restart, and had the composure to score the penalty after the first try went wrong. Has been one of Madrid's key men all season.
FW Marco Asensio, 7 -- Replaced Hazard with half an hour to go and had a late goal ruled out.
FW Vinicius Junior, 7 -- On for Rodrygo. Ran at the Villarreal defence and had a shot blocked before creating the chance that saw Asensio's goal struck off.
FW Lucas Vazquez, NR -- Slotted in at right-back, allowing Carvajal to take a break.
MF Federico Valverde, NR -- Didn't have much time to make an impression.
MF Isco, NR -- Came on and picked up a yellow card.