The result means Barca are now on 65 points, four ahead of Sevilla, who host third-placed Real Madrid on Sunday. Sociedad stay second bottom.
A fairly uneventful first half saw Barcelona edge the possession and chances but look ultimately laboured as they faced a determined Sociedad defending from the front as they battle to save their Primera Division status.
Barcelona should have taken the lead on five minutes when Xavi was incorrectly adjudged to be offside when he tapped in Giovanni van Bronckhorst's low cross following superb work from Leo Messi.
Barcelona and Neymar reach agreement over legal dispute
Darko Kovacevic was Savio were the hosts' main outlets, the former going close when sent into the Barca box by Xabi Prieto and the latter winning several free kicks and corners with his direct running from both flanks.
But Xavi was playing an unusually advanced role for the Liga leaders and almost got the opener when Ronaldinho sent a brilliant ball over the top to spring the offside trap and send him clean through, but his finish was tipped over by Claudio Bravo. They almost took the lead just before the break when Sociedad defender Victor Lopez put the ball just over jis own bar after more great work on the left by Van Bronckhorst, but Sociedad survived into half-time.
Barca, however, took the lead just after the break. It was the guile and intelligence of Ronaldinho that created it, the Brazil maestro with the ball on the halfway line waiting and waiting until the Sociedad defence pushed up to play Eto'o offside - and lose the late run of Iniesta from midfield, the Spain international sent clean through and rounding Claudio Bravo to finish coolly for 1-0 on 47 minutes.
Messi was excellent in his build-up play but wayward with his finishes, going close after surging runs on no less than three occasions, while Savio was the source of most Sociedad danger, the former Real Madrid winger hammering a shot into the side-netting then sending a first time finish over the bar after Barca failed to clear a Mikel cross.
Bravo also made a couple of good saves from Eto'o and Ronaldinho but he was powerless to stop the strike that finished the match off with two minutes remaining, Ronaldinho again with a great through ball this time to Eto'o, who raced clear of the last man before tucking the ball past the Sociedad keeper for 2-0.
'He played with me' - Eto'o's bizarre response to Messi question
Barca expect new Messi deal in August