Atletico stay top, three points clear of third-placed Real, as they squeezed out a tense 1-0 win over Villarreal, whilst Barca remain in second after overcoming Real Betis 3-1 thanks to two goals from Lionel Messi yesterday.
Real were leading 1-0 thanks to Asier Illarramendi's opener when Bale pounced on an error from Sociedad keeper Claudio Bravo to register his 18th goal of the season with a sweet left-footed striker 25 minutes from time before Pepe and Alvaro Morata rounded off the scoring.
However, Carlo Ancelotti's men went in front the first time they really threatened the Sociedad goal as Bale fed Karim Benzema and when Bravo could only parry the Frenchman's effort, Illarramendi was on hand to slot home against his former club.
Sergio Ramos and Benzema then struck the bar as Real started the second-half with greater intent.
More From This Section
Bale killed the game off as a contest when he collected Bravo's errant clearance and thumped the ball into the bottom corner before the Chilean international could get himself back into position.
Barcelona were made to struggle at home to bottom-placed Betis as they needed two penalties and a Jordi Figueras own goal to see off Los Verdiblancos.
Messi put his side in front from the spot after just 15 minutes and the hosts looked to have the game sewn up when Figueras turned the ball into his own net from fully 20 yards.
Ruben Castro brought Betis back into the game moments later, but Messi killed the game off four minutes from time by slotting home the rebound after Antonio Adan had saved his second penalty of the day.