In freezing conditions in Pamplona, Osasuna striker Dejan Lekic scored twice inside the first 22 minutes and Barca, who have struggled on the road all season, waited too long to react.
Spanish World Cup winners Xavi, Andres Iniesta and Cesc Fabregas started on the bench, and although Alexis Sanchez pulled one back for the visitors in the 52nd minute, Raul Garcia quickly restored Osasuna's advantage.
Barca's youth team winger Cristian Tello grabbed a second in the 73rd but a late charge just failed to produce the equaliser.
The world and European champions' second defeat of the season left them on 48 points.
"The league is much tougher now, and I suppose tomorrow we will see the gap grow even larger, " Barca coach Pep Guardiola told reporters.
"If we could play well on this pitch in the second half we should have done so in the first as well. We found it hard to get into the game."
Atletico Madrid climbed to sixth with 31 points despite being held to a 0-0 draw at Racing Santander.
Home goalkeeper Tono was man-of-the-match as he pulled off a string of saves to deny Atletico, who are unbeaten in the six games since Argentine Diego Simeone took the helm and have yet to concede a goal in that time.
Osasuna are seventh also with 31 points, one ahead of King's Cup finalists Athletic Bilbao, who suffered a 2-1 defeat at Real Betis in the late game.
Nelson struck a rasping last-minute winner for Betis, who played the last 25 minutes against 10 men after Bilbao defender Javi Martinez, the scorer of the equaliser, was sent off for a second bookable offence.
Osasuna's bumpy pitch and a swirling wind saw both sets of players struggling to keep their feet at the Reyno de Navarra stadium, but the hosts adapted quicker than Barcelona.
Serbian striker Lekic beat Victor Valdes at his near post after only five minutes to open the scoring and the Navarrans continued to boss the game until they doubled the lead.
A low cross from the right saw Lekic arrive unmarked again to find the net and Barca went in at the break trailing by two goals for the first time in the league since Guardiola took the helm in 2008.
Barcelona turned to youngsters Tello and Isaac Cuenca at half-time, perhaps reserving Xavi and Iniesta for the return to Champions League action next Tuesday, and the latter provided the cross for Alexis to score in the 51st minute.
It was only a brief respite.
A poor clearance from Valdes, one of a string of errors among Barca's players, led to Osasuna's third, when Raul Garcia squeezed a shot in off the post in the 55th.
Substitute Fabregas laid on the second for Tello, who cut back inside his marker to smash the ball high into the net.
Osasuna hit the post on a counter-attack but the action was all in thei
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.