It was the hosts who came closest to breaking the deadlock in the early stages, with Antoine Griezmann smashing a half-volley against the crossbar in the fourth minute.
Villa made up for the miss 12 minutes later, rushing clear of the Sociedad defence and beating goalkeeper Claudio Bravo with a deft chip.
It took Atletico until midway into the second period to extend their lead. Villa turned provider this time, lining up the ball for Koke to bury following a swift counter-attack.
Sociedad ensured that the closing stages were tense when Xabi Prieto netted with 20 minutes left to play, and they came agonisingly close to an equaliser in stoppage time.