The deal is for three years, $100 million, agent Rich Paul told ESPN. A source told ESPN that James has a player option for the third year.
The salary in the first year of James' deal will be $31 million, making James the highest-paid player in the NBA for the first time in his career. The salary for the 2017-18 season will top $33 million, making him the highest-paid player in a single season in league history, exceeding the $33 million Michael Jordan earned with the Chicago Bulls in the 1997-98 season.
"We are very fortunate to have a championship group together, one that has grown organically to trust and sacrifice for one another, on and off the floor," Cavs GM David Griffin said. "At the core of that group is LeBron. His leadership, passion and tireless commitment are the hallmarks of our success and have inspired our entire franchise. His connection and dedication to his community and this fan base are absolute. We share his determination to win at the highest level and can't wait to get back to work, together to defend our title."
James posted a photo on his Instagram account earlier Friday, apparently showing him signing the deal.
Over the past two years, James had accepted one-year contracts from the Cavs with player options. After considering his choices, James opted for a longer deal with the Cavs this summer.
James, 31, led the Cavs to the title last season, which was his third season back in Cleveland. It was the first championship for one of the city's three professional sports teams since the Browns won the NFL championship in 1964.
A four-time MVP and 12-time All-Star, James averaged 25.3 points, 7.4 rebounds and 6.8 assists last season.