Hairston's deal is for two years, but other terms were not disclosed by the team. According to a source, the deal is worth $5 million.
Hairston, 32, batted .263 with 25 doubles, 20 home runs and 57 RBIs in 134 games with the New York Mets last season, setting career highs in home runs, games played and slugging percentage (.504).
Hairston has played all or part of the last nine major league seasons with Arizona (2004-07), San Diego (2007-09, 2010), Oakland (2009) and the Mets (2011-12). He is a career .247 hitter.
Hairston is one of five members of his family to play in the majors and is the third member of his family to join the Cubs organization. His uncle, Johnny, played for the Cubs in 1969, and his brother, Jerry, played for the Cubs from 2005-06.
Campana, 26, batted .262 and stole 54 bases in 184 games with the Cubs covering the last two seasons. He could go down to the Cubs' minor leagues if he clears waivers.