Terms of the deal weren't announced, but the New York Daily News reported it was worth $56 million with a vesting option for 2017 at $14 million that could bring the total $70 million.
Swisher, who has spent the last four seasons with the New York Yankees, was born in Columbus, Ohio, and attended Ohio State University.
"Wow! What a crazy few weeks," Swisher said Sunday via Twitter. "Hey Cleveland! Are you ready? Because I'm coming home!"
Swisher, 32, batted .272 with 24 homers and 93 runs batted in last season.
His final season in New York was marked by fan unhappiness over his 5-for-30 performance in eight 2012 playoff games and his .162 batting average in 36 postseason contests for the Yankees.
He has compiled a .256 average with 209 homers and 673 RBI in 1,209 games with Oakland, Chicago White Sox and the Yankees over nine seasons.
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'
Exploding whale video goes viral on Internet