The Denver Post reported the deal is worth about $30 million.
Cuddyer had spent his entire 11-year career with the Minnesota Twins and last season hit .284 in 139 games with 20 homers and 70 runs batted in. He was an All-Star for the first time in 2011.
The 32-year-old veteran is a career .272 hitter with 141 homers and 580 runs batted in. He has reached 20 home runs three times, including a career-high 32 in 2009, and drove in a career-best 109 runs in 2006.