The four-time MVP, who began his professional career in Cleveland, held talks with his former club after opting against signing a new contract in Miami.
James announced the news via Sports Illustrated, while also thanking his teammates for the success they brought to Miami during his four-year stint.
The 29-year-old wrote: "When I left Cleveland, I was on a mission. I was seeking championships, and we won two. But Miami already knew that feeling. Our city hasn't had that feeling in a long, long, long time. My goal is still to win as many titles as possible, no question. But what's most important for me is bringing one trophy back to Northeast Ohio.
"I always believed that I'd return to Cleveland and finish my career there. I just didn't know when. After the season, free agency wasn't even a thought. But I have two boys and my wife, Savannah, is pregnant with a girl.
"I started thinking about what it would be like to raise my family in my hometown. I looked at other teams, but I wasn't going to leave Miami for anywhere except Cleveland. The more time passed, the more it felt right. This is what makes me happy."
James won two NBA Championship titles with Heat, but is under no illusions that he and his new teammates can recreate that feat in Cleveland instantly.
He added: "I'm not promising a championship. I know how hard that is to deliver. We're not ready right now. No way. Of course, I want to win next year, but I'm realistic. It will be a long process, much longer than it was in 2010."
Among his list of achievements, James has earned two NBA Finals MVP awards and two Olympic gold medals.