Real Madrid clinched a record-extending 34th La Liga title with one game to spare by beating Villarreal 2-1 at home on Thursday thanks to two goals from their leading scorer Karim Benzema.
Real have 86 points after 37 games, seven more than deposed champions Barcelona who were beaten 2-1 at home to Osasuna.
Benzema fired through the legs of keeper Sergio Asenjo to put Madrid ahead after 29 minutes and converted a penalty in the 77th to help Real on their way to a remarkable 10th consecutive league win since the season resumed after the COVID-19 stoppage.
Benzema had put the ball in the net moments earlier after an audacious pass from the spot kick by original penalty taker Sergio Ramos but it had to be re-taken due to encroachment.
The French forward then stepped up to take the penalty himself and slammed it into the bottom corner to score his 21st league goal of the campaign.
Villarreal pulled a late goal back through Vicente Iborra and should have snatched an equaliser in added time, while Real's Marco Asensio thought he had added a third goal later on but it was ruled out by VAR for offside.
After the match Real captain Ramos hoisted the Liga trophy into the air at the empty Alfredo di Stefano stadium, where the Madrid side have been playing their final games of the season while their Santiago Bernabeu home is being renovated.
"To return after spending three months locked in our homes and to win 10 matches in a row is incredible, but I always believed in my team and knew we could win it," said Real goalkeeper Thibaut Courtois.
Bungling Barca slump to home defeat by Osasuna
Barcelona's reign as La Liga champions came to an embarrassing end as 10-man Osasuna pulled off a shock 2-1 win at the Camp Nou wih a stoppage-time goal on Thursday while Real Madrid clinched the title with a 2-1 victory at home to Villarreal.
Having struggled since La Liga restarted in mid-June following the new coronavirus outbreak, the defeat left Barca on 79 points, seven behind Real Madrid with one game left, and the loss prompted an angry broadside from Lionel Messi.
"We didn't expect to finish in this way, but it sums up the year for us. We are a weak team who can be beaten with enough intensity and enthusiasm," the Argentine told Spanish TV.
"We have lost a lot of points which we shouldn't have done. We have been very inconsistent," he added.
"We need to be self-critical, starting with the players, but also across the entire club. We are Barcelona, and we are obliged to win every game."
Osasuna took the lead when Adrian Lopez set Pervis Estupinan free with a clever pass down the left, and his ball into the box was drilled into the bottom corner by striker Jose Arnaiz in the 16th minute.
Messi hit the crossbar with a free kick in the 22nd, one of few first-half highlights as Barcelona struggled to break down the visitors.
Martin Braithwaite thought he had put Barca level early in the second half but his goal was chalked off when Messi was found to be offside.
Messi made no mistake with a sublime free kick in the 62nd minute after Luis Suarez was fouled just outside the box, and Suarez had another effort ruled out for a marginal offside.
The hosts were much improved in the second half and sensed victory when Osasuna Enric Gallego was sent off in the 77th minute for an elbow six minutes after coming off the bench.
Instead, Barcelona's frustrating season was summed up when Roberto Torres snatched a winner deep into stoppage time, catching the defence flat-footed before hammering home fellow substitue Enrique Barja's cross.
Sania amongst 100 Olympians to share experience online
Ronaldo's dream run ends as Juve held at Sassuolo
EPL: Arsenal beat Liverpool; Kane goes past 200 goals
Who is the most underestimated tennis player?