The Spanish midfielder, who was once regarded as one of the best talents in Europe, moved to Real Madrid from Racing Santander in 2012.
Injuries stunted his progress in the Spanish capital, and the the 22-year-old joined Valencia in 2012. However, he has now moved onto Sociedad after struggling for first-team football this season.
A statement on the club's official website last week read: "Real Sociedad have reached an agreement with Valencia and with Sergio Canales for the signing of the young Cantabrian midfielder until June 30, 2018.
"Sergio Canales has already passed his medical prior to signing and will be officially presented next Monday."
Canales has joined Sociedad on a four-and-a-half-year contract.