The 26-year-old striker agreed a four-and-a-half year deal with the Toffees and will cost them an initial fee of €22 million.
Besiktas will be given €500,000 should the Turkey international start 25 Premier League games for the Merseyside club.
Any season that Cenk should score 25 league goals or more will result in Everton paying €1m to Besiktas, while hitting the 15-goal mark will bag the Super Lig side an extra €500,000 for every campaign it should happen in.
Tosun joins Everton having scored 41 goals in the Turkish league since the start of the 2014-15 season, more than any other player in the top flight during that period.
Everton sold Romelu Lukaku to Manchester United in a deal said to be worth £75m this past summer and have struggled to fill the Belgian's void, scoring just 25 goals in 22 Premier League matches.
Tosun netted 20 goals in 33 league appearances last season to steer Besiktas to the title and has added another eight in 16 appearances this term. He also has eight goals in 25 caps for Turkey, having represented his country at Euro 2016.
Born in Germany, the striker started his career at Eintracht Frankfurt before moving to Gaziantepspor in January 2011. He then made the switch to Besiktas ahead of the 2014-15 campaign.
Everton made a poor start to the season, leading to the firing of Ronald Koeman in October, but they have enjoyed a resurgence under new manager Allardyce to climb to ninth in the table, despite going four games without a win.