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 with 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.