The White Sox will pay Gonzalez $4.5 million next season, according to the team. The club also holds a $7 million option for the 2021 season with a $500,000 buyout.
"We view Gio as an important addition to our starting rotation," White Sox general manager Rick Hahn said in a statement Friday. "He brings an impressive resume to our pitching staff as a veteran left-hander who has enjoyed success and should have a positive impact on our younger pitchers in terms of competing, battling and helping us win games at the major league level."
Gonzalez, who was an All-Star selection in 2011 and 2012, posted a 3-2 record with a 3.50 ERA and 78 strikeouts in 19 appearances (17 starts) for the Milwaukee Brewers last season. He joined the Brewers in August 2018 after being traded by the Washington Nationals.
Gonzalez made his MLB debut with the Oakland Athletics in 2008. He is 130-99 with a 3.68 ERA across 12 years with the A's (2008-11), Nationals (2012-18) and Brewers (2018-19).
The White Sox previously added All-Star catcher Yasmani Grandal, who was Gonzalez's teammate in Milwaukee this past season, in free agency last month. Chicago also re-signed slugger Jose Abreu to a three-year, $50 million contract in November, and acquired Nomar Mazara from the Texas Rangers last week.