Diego Simeone's side made an aggressive start and after spurning a few early chances they deservedly went ahead with a low finish from Yannick Carrasco in the 16th minute, doubling their lead in the 28th through Argentine forward Angel Correa.
Sociedad had their moments but were denied by six saves from Atletico's talismanic keeper Jan Oblak while forward Portu hit the post late on.
They finally got a goal when defender Igor Zubeldia bundled the ball into the net in the 83rd minute, ensuring a nerve-shredding finish for the leaders.
Atletico were hemmed into their own half for most of the remaining minutes but clung on for the victory and know they will lift a first La Liga crown since 2014 if they beat Osasuna and Real Valladolid in their final two fixtures.
"If we didn't suffer it wouldn't be us," said Atletico captain Koke.
"We're tired, we worked spectacularly. We got two goals then took a step back, we had some great moments in the game and some less good ones but we got there in the end."
Atletico lead the standings on 80 points, four clear of second-placed Barcelona and five ahead of third-placed Real Madrid, who visit Granada on Thursday.
"There's two games left still, a lot of things can happen. We had a final today, we won it and we have another final on Sunday and will try to win that too," added Koke.
Atletico had earned a crucial draw away to Barcelona on Saturday but the point felt like little after a spirited, ambitious performance at the Camp Nou and the result handed the advantage in the title race to Real