Silva headed La Real in front at Balaidos for his first goal since he left Manchester City in the summer, and his first in La Liga since he departed Valencia 11 years ago.
Mikel Oyarzabal made it two with his fifth of the season, a tally that also makes him the league’s top scorer so far.
Willian Jose then hit the net twice in the second half, either side of Iago Aspas converting a penalty, which gave Celta brief hope of a comeback.
Celta’s Jose Fontan was sent off for a second yellow card late on, to cap a disappointing afternoon for the home side, who sit 17th, without a win in six games.
But another impressive victory for Real Sociedad means they have won their last four league games on the bounce, with scorelines of 3-0, 3-0, 4-1 and 4-1.
They return to the top of the table, one point ahead Real Madrid, who had temporarily taken first place after their 4-1 win over Huesca on Saturday.
Atletico Madrid are third, three points off the leaders but with two games in hand.
Real Betis had earlier beaten Elche 3-1 to climb to seventh. Elche drop to 10th.