Goalkeeper Andres Fernandes was the Osasuna's main man as he made a string of fine saves, the best coming just three minutes from time as he pushed away Diego Ifran's well-struck volley.
Carlos Vela had earlier hit the bar as Sociedad were made to pay for their profligacy in front of goal and the Basque side could even have lost the game as Nino went just wide with Osasuna's best effort towards the end.
Despite their good form in the league the sides came into this match on the back of very different cup results in midweek and the confidence gained from their 2-0 win over Mallorca was easy to see in the Sociedad players as they controlled the flow of the game.
Antoine Griezmann and Vela were in particular causing the Osasuna defence problems but all too often they were wasteful when presented with clear sights of goal. Vela was first to go close as his free-kick shaved the post on 20 minutes before Sergio had to be alert to divert Griezmann's shot wide.
Thereafter Andres became the barrier that the hosts failed to get past as he first saved brilliantly from Liassine Camaduro and then from Griezmann just before the break.
The one-way traffic continued after half-time as the France U-21 international was again denied by Andres before Vela's header came back off the woodwork.
However, Sociedad failed to maintain the intensity and pace in their play after that initial spurt in the second half and that allowed Osasuna to play much further up the field than they had early on.
Los Rojillos still did not look like creating much from open play but they nearly pinched all three points from a set-piece as Nino controlled inside the area but saw his right-foot shot drift just wide.
Fittingly though it was Andres who had the final say as substitute Xabi Prieto looked to have created the game winning chance for Ifran but he too could not find a way past the inspired keeper and Osasuna held on to strengthen their position in fifth.