The deal is for $9.5 million plus performance bonuses, according to Garza's representation, CAA Sports.
Garza and the Cubs were scheduled to have an arbitration hearing Friday in Florida. Garza was asking for $12.5 million, and the Cubs were going to come in at $7.95 million, according to a major league source.
Garza was the Cubs' top pitcher last season, going 10-10 with a 3.32 ERA. He was seventh in the National League with 8.96 strikeouts per nine innings. He had seven games in which he left with a lead, but ended in no-decisions for him.
Garza, 28, has been the subject of multiple trade rumors since December. He made $5.9 million last season.
President of baseball operations Theo Epstein has said the Cubs have spoken to numerous teams about Garza and his availability. He also stated that signing the pitcher to a long-term deal is something the club would consider.
Garza is arbitration-eligible again in 2013 before possible free-agent status in 2014.
Bruce Levine covers MLB for ESPNChicago.com.