Villa, who missed the second half of last season and EURO 2012 after breaking his leg in December, netted after appearing as a late substitute to complete the win as Barca showed it was business as usual despite the departure of record-breaking coach Pep Guardiola.
During a frenetic start to the match which saw four goals scored in the opening 16 minutes, Barca charged into a 3-1 lead with Carles Puyol - who also missed Spain's triumphant EURO 2012 campaign through injury - notching the first.
Sociedad briefly drew level when Gonzalo Castro netted but Messi, who scored 73 times last season, then struck twice in five minutes to put the home side two goals clear.
Pedro Rodriguez added a fourth before the break before Villa climbed off the bench to also get his name on the scoresheet as Vilanova's men made an impressive start to their bid to reclaim the Primera Liga title back off Real Madrid.
Madrid, which ended Barca's three-year reign as champion last term, could only start its defence with a 1-1 home draw with Valencia.
Gonzalo Higuain put Madrid ahead after 10 minutes but Valencia, which finished third behind Jose Mourinho's men and Barca last season, drew level through Jonas just before the break and neither side could find a winner in the second half.
In a thrilling season-opener at San Mames, Real Betis recovered from squandering a 3-0 half-time lead to seal a 5-3 win over Athletic Bilbao.
Athletic, for which star duo Fernando Llorente and Javi Martinez were omitted by coach Marcelo Bielsa as they look set to leave the Basque giant, appeared set for a humiliating defeat as Betis raced into a three-goal lead through strikes from Ruben Castro (seven), Jorge Molina (26) and Benat Etxebarria (31).
However, the home side staged a stirring fightback after the break and managed to draw level through Oscar De Marcos (47) and a brace from Mikel San Jose (67 and 76).
Hopes of a stunning Athletic victory were crushed though as Betis netted twice in the last 10 minutes to snatch the points, Alejandro Pozuelo making it 4-3 in the 80th minute before Molina completed the scoring with his second in the 86th minute.
In the day's other game, Levante drew 1-1 at home with Atletico Madrid. Nabil El Zhar gave the host a fifth-minute lead but Atletico drew level 17 minutes later through Arda Turan to claim a share of the points.