The now 26-year-old spent four-and-a-half years at Juventus, scoring 68 goals in his 168 games across all competitions for the club.
Juventus made the decision not to renew his expensive contract at the end of last season, however, and Vlahovic became a free agent.
He had been linked with moves to the Premier League and LaLiga, but no club was willing to pay his high wage demands.
Now, Besiktas have confirmed his signing with Vlahovic joining on a reported three-year contract worth €8m per season plus performance-related bonuses taking it to €10m.
Vlahovic now reunites with former Fiorentina manager Vincenzo Italiano, who he scored 20 goals in 24 games under during their six months together in 2020-21.
