The 30-year-old defender, who spent last season on loan at Juventus, has signed a four-year contract with the Russian champions.
Howedes spent 16 years at Schalke, progressing through the ranks to become first-team captain and racking up 240 Bundesliga appearances for his boyhood club.
However, the German has been dogged by a series of injuries in recent years and was only able to make three Serie A appearances while on loan at Juve.
"Last summer, Benedikt looked for a new challenge at Juventus," Schalke's sporting director Christian Heidel told the official website.
"We wish him all the best in the new sporting chapter of his career at Lokomotiv Moscow, who did a remarkable job last season."
Howedes won the most recent of his 44 Germany caps in March 2017 and was an ever-present in the 2014 World Cup-winning side.