The contract also reportedly includes a $14 million option for a fifth season. The deal is still pending a physical, but Swisher was quick to take to Twitter to announce his arrival in Cleveland.
Swisher posted on Twitter: "Wow! What a crazy few weeks. Hey Cleveland! Are you ready? Because I'm coming home! #Roll Tribe."
He also thanked New York Yankees fans for their support. Swisher spent four seasons in the Bronx after playing four seasons with the Oakland A's and one season with the Chicago White Sox.
Swisher, 32, was born in Columbus, Ohio, and lived there until he was 11. He hit 24 home runs in 2012, and had a .272 batting average. The congenial slugger became expendable to the Yankees following a disappointing postseason.
The Indians gain a prominent outfielder to replace the recently traded Shin-Soo Choo. Cleveland offered Shane Victorino a four-year deal, but the speedy outfielder chose to sign with the Boston Red Sox.
Cleveland had the second-worst offense in American League in 2012. The Indians have failed to reach the postseason since 2007, and finished fourth in the AL Central last season.