Jon Heyman of CBS Sports reports that the deal is worth $42 million.
The White Sox have not confirmed the deal yet, but Cabrera re-tweeted a tweet by Chicago centerfielder Adam Eaton on Sunday welcoming him to the team.
Cabrera batted .301 with 16 home runs and 73 RBI in 2014 for the Toronto Blue Jays. The White Sox will be Cabrera's sixth different team since 2009. The 30-year-old started his career with the New York Yankees, making his debut in 2005 and spending five years there.
In 2012, Cabrera was suspended 50 games for violating MLB's performance-enhancing drugs policy. Earlier that season, he was named an All-Star for the first time in his career.
The outfielder has a career .286 average and .339 on-base percentage with 88 home runs and 520 RBI.
- Molly Geary