MLB Network's Jon Heyman reported that the deal is worth $2 million in base salary and $1 million in incentives.
The deal, which includes an early April opt-out clause, is pending as long as Gonzalez can pass a physical.
The 33-year-old veteran last season in Colorado hit .276 with 16 homers and 64 runs batted in with a .796 on-base percentage.
The lefty, who spent the last 10 seasons with the Rockies, is a three-time National League All-Star, and is a lifetime .290 hitter with 231 homers and 755 RBI.
The Indians are hoping that Gonzalez can give their offense and outfield a boost, as the team enters 2019 with possibly three new outfielders. They lost Michael Brantley, Rajai Davis, Melky Cabrera and Lonnie Chisenhall this winter via free agency.
Gonzalez has played right field for Colorado over the last three seasons, a spot that Cleveland was hoping to fill in spring training among the likes of Tyler Naquin, Greg Allen, Jordan Luplow and Jake Bauers.