Garland agreed to a one-year deal with a mutual option for 2010. The deal is pending a physical, the source said. The agreement was first reported by the Arizona Republic.
Garland will make a base salary of $6.25 million in 2009, a source said. The option year will pay him $10 million.
If Garland wants to return for 2010 and the Diamondbacks decide not to exercise the mutual option, he will receive a $2.5 million buyout.
If Garland rejects the option and elects to go back on the free agent market, he will receive a $1 million buyout.
The right-hander, who was twice an 18-game winner with the Chicago White Sox, is 106-89 in nine major league seasons. In 2008, he was 14-8 with a 4.90 ERA for the Angels.
Garland has spent his entire career in the American League. He has made two postseason appearances, both with the White Sox in 2005. He went 1-0 with a 2.25 ERA, with a complete-game victory coming over the Angels in the AL Championship Series.
Jerry Crasnick covers Major League Baseball for ESPN.com. Information from The Associated Press was used in this report.