Liga title on the night their 30-game unbeaten home run in the league came to an end.
Even a win would not have been enough for Barca, as Real Madrid beat Villarreal 2-1 to win the title.
Jose Arnaiz put Osasuna ahead before Messi leveled with a free-kick.
The visitors had Enric Gallego sent off for elbowing Clement Lenglet before Roberto Torres’ close-range winner.
Messi, who is La Liga’s top scorer on 23 goals with one game to go, said:
“We didn’t expect to finish in this way, but it sums up the year for us.
“We are a weak team that can be beaten with enough intensity and enthusiasm.
“We have lost a lot of points which we shouldn’t have done. We have been very inconsistent.
“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.”
Barca’s only hope of a major trophy now is the Champions League.
They host Napoli in the last 16-second leg on Saturday, 8 August, having drawn 1-1 in Italy.
Olalekan Ajimoti – Blogger, Content Writer, and Digital Marketer helping brands and retailers build 8-figure e-commerce since 2016.
As a corporate trainer, brand communications expert, and brand consultant, I help people start, stay and grow in business leveraging digital skills and traditional expertise.