The 29-year-old Netherlands international joined the Black Cats in a £11m move from Dynamo Kiev in 2015.
Lens failed to make much of an impact at Sunderland, however, and was subsequently loaned out to Fenerbahce last season, where he netted five times in 33 appearances.
Sunderland rejected an initial bid from Besiktas last month but the two sides have now agreed an undisclosed fee for the player, thought to be around £4.5m.
The Wearsiders released a brief statement on their official website which read: "Jeremain Lens has completed his move to Besiktas.
"The Dutchman joins the Turkish club after two years on Wearside, where he made 24 appearances for the Black Cats, netting four goals."