Both teams announced the trade on Saturday. The swap was first reported on Friday evening.
Cleveland is receiving Minor League outfielder Alex Call from Chicago in exchange for the veteran infielder.
Alonso, 31, hit .250 with 23 home runs and 83 RBIs in 145 games last season for the Indians. The nine-year veteran signed with the Tribe in December 2017 as a free agent. The 6-foot-1, 230-pound infielder was an All-Star in 2017. He owns a career .265 batting average with 90 career long balls.
Alonso also suited up for the Cincinnati Reds, San Diego Padres, Oakland Athletics and Seattle Mariners before joining the Tribe. He has now been traded four times during his Major League Baseball tenure.
He is under contract for $8 million in 2019 and has a $9 million team option in 2020 with a $1 million buyout.
Call, 24, was a third round pick by the White Sox in the 2016 MLB June Amateur Draft. He hit .248 last season between Class A and Double-A.