The former Arsenal striker opened the scoring after 29 minutes before Francisco Piti equalised for the home side. Antoine Griezmann doubled Sociedad's score minutes ahead of half-time before Vela struck again midway through the second half.
The result leaves Lucas Alcaraz's men with just three points from their last four matches and 11th in the league standings.
The home started began well and could have taken the lead as early as Piti tested Claudio Bravo after just two minutes.
The visitors did not take long to test the Granada goal but Xabi Prieto's powerful long-range shot sailed over the crossbar before Griezmann's effort was kept out by Roberto Fernandez's safe hands.
Youssef El Arabi had a chance to put the home side ahead midway through the first half, forcing Bravo to work hard keeping it out.
But it was the Txuri-urdin who took the lead just before the half-hour mark as Antoine Griezmann crossed the ball in from the right, picking out Vela, who lobbed the ball home from the edge of the 18-yard box.
El Arabi and Piti pushed forward for El Grana and their pressure paid off eight minutes later as the home side grabbed an equaliser through Piti.
The 32-year-old striker collected Yacine Brahimi's pass from their own half and drilled home a 25-yard thunderbolt to level the scores.
But the visitors struck back three minutes before the break as Griezmann volleyed in his 11th goal this season with a left-footed shot from just inside the penalty box.
Both sides could have added to the scoresheet at the beginning of the second half and Granada came close with efforts from Brayan Angulo and Brahimi, who made Bravo work hard to keep them at bay.
It was just after the hour mark that Sociedad extended their lead even further.
Markel Bergara provided the assist from the right channel from which Vela drilled home his side's third goal of the game from close range - his ninth goal this term.
Minutes later Bravo tipped Fran Rico's effort over the bar as Granada looked to come back into the game, while Piti shot just wide of the post deep into the second half but they failed to add to their score.