Bob Nightengale of USA Today was first to report the teams were close to a deal.
In exchange, the Diamondbacks receive pitching prospects Zack Godley, 24, and Jeferson Mejia, 20.
Montero, 31, made his second All-Star appearance last season as an injury replacement for St. Louis Cardinals catcher Yadier Molina. Montero hit .243 with 13 home runs and 72 RBIs in 136 games for the D-backs, and is also known as a strong defensive catcher.
Montero told The Arizona Republic that he is excited to be heading to Chicago:
"I'm really excited, to be honest," Montero said in a phone interview. "I'm excited to go play for a team that has a lot of history behind it and to play for a manager in Joe Maddon who I've enjoyed watching manage baseball games. I'm really excited. I don't know what else to say."
For his career, Montero is a .264 hitter with 97 home runs and 448 RBIs over nine seasons with Arizona. Montero is due $12 million in 2015 and $14 million in both 2016 and 2017.
After dealing for Montero, the Cubs are looking to trade catcher Welington Castillo, according to Jeff Passan of Yahoo Sports. Castillo appeared in 110 games for Chicago last season, hitting .237 with 13 home runs and 46 RBIs.
According to The Chicago Tribune, the Cubs have been "very transparent" in their search for an upgrade at catcher. The Cubs pursued Russell Martin earlier this offseason, but he ultimately signed with the Toronto Blue Jays.
- Mike Fiammetta