The three-year contract is worth more than $15 million guaranteed, a source told ESPN's Jerry Crasnick.
Carter tied for the National League lead in home runs with 41 in 2016, his one season with the Brewers after signing for $2.5 million. He is eligible for arbitration.
Thames, 30, had a .348 average over the past three seasons for the NC Dinos in the Korean Baseball Organization, winning MVP honors in 2015 after becoming the first KBO player to hit 40 homers and steal 40 bases in a season. He again hit 40 home runs and had 118 RBIs in 2016.
"Eric brings to the organization a left-handed power bat that is a good fit for our lineup," Brewers GM David Stearns said in a statement. "His ability to play first base along with both corner outfield positions adds versatility to the roster. Eric has been extremely impressive over his last three seasons in Korea, and we look forward to his return to the Major Leagues in 2017."
Thames previously played with the Toronto Blue Jays (2011-12) and the Seattle Mariners (2012), hitting .250 in 181 games with 21 home runs and 82 RBIs before signing to play in Korea in December 2013. He wasselected by the Blue Jays in the seventh round of the 2008 MLB first-year player draft out of Pepperdine University.
The Brewers have designated Carter for assignment amid reports that the team is trying to trade the slugger before he becomes a free agent. He tied for the National League lead last season with 41 home runs and is expected to receive a big raise via arbitration.
Carter, who also led the NL with a team-record 206 strikeouts, hit .222 with a team-high 94 RBIs last season.
Thames' contract includes a provision that prohibits the Brewers from sending him to the minors without his permission, a source said, even though he has a minor-league option remaining from his previous MLB tenure.
His deal also includes a provision that prevents the Brewers from offering him salary arbitration and allows him to become a free agent at the conclusion of his contract, the source said. Thames currently has one year-plus of MLB service time and will be short of the six-year free agency threshold at the end of his deal with the Brewers. He'll have less than six years of service time regardless of whether the Brewers exercise their 2020 option.
ESPN Staff Writer Jerry Crasnick contributed to this report.