Denmark winger Michael Krohn-Dehli put Celta ahead just the half-hour mark, but midfielder Gorka Elustondo equalised just before the hour.
Iago Aspas created Krohn-Dehli's goal, but Celta had it all to do when Augusto Fernandez was given a red card in the 50th minute.
Sociedad unleashed a second-half onslaught, racking up 17 efforts on goal and 65% possession, with Elustondo combining with Carlos Martinez to level.
The struggling hosts moved 16th and two points clear of the relegation zone after the result.
Sociedad moved up two places to seventh, although both could slide down the standings by the end of the weekend.