Schierholtz can earn an additional $500,000 in performance bonuses, the source said.
Schierholtz, 28, is a .270 career hitter with a .727 OPS over six seasons with San Francisco and Philadelphia. He became a free agent last week when the Phillies declined to offer him a contract at the non-tender deadline.
Tampa Bay, Boston, Baltimore and the New York Yankees and Mets were among the other teams that had expressed interest in Schierholtz. He is expected to be the Cubs' primary right fielder in 2013.