Roman Neustadter has completed his move from Schalke to Fenerbahce after turning down the Bundesliga club's offer of a new contract.
The Turkish club announced last week they had opened talks with the 28-year-old, who started Russia's first two matches at Euro 2016.
And a statement on the club's website on Wednesday read: "Roman Neustadter Petrovich has signed an official contract binding him to our club for three years."
Neustadter added: "I am delighted to be here, I'm very proud.
"It is a great team, a huge club with tradition and a great crowd. I want to help to contribute to the team."
Neustadter became a free agent last week when his contract with the Royal Blues expired, and he branded the Gelsenkirchen-based club disrespectful for the way they had treated him.
- Fenerbahce_EN (@Fenerbahce_EN) 6 July 2016
"I have decided to end talks with Schalke and leave the club," he wrote last month.
"This is a very hard decision for me to make and it has been delayed too long, probably due to the change in coach and general manager.
"After preliminary talks with Mr [Christian] Heidel [Schalke's new director of sport] in Mainz, I realised it was going to take time, but three months of waiting later and I would like to move to a club who respect me as a person and a player."
Neustadter made a total of 181 Bundesliga appearances for Schalke, Borussia Monchengladbach and Mainz.
Born in the Ukrainian city of Dnipropetrovsk, then part of the Soviet Union, to a Kazakh father and a Russian mother, he opted earlier this year to represent Russia and was immediately included in their squad for Euro 2016.
He had previously made two friendly appearances for Germany, where he was brought up.