General manager Kevin Towers confirmed the deal late Monday afternoon, saying it was contingent on Kubel passing a physical. The contract includes a mutual option for a third year.
The addition comes as something of a surprise because it would send left fielder Gerardo Parra to the bench as the Diamondbacks' fourth outfielder. Parra had a breakthrough season a year ago, batting .292 and winning a Gold Glove as one of the game's best defensive outfielders.
Kubel would add a left-handed-hitting slugger to the batting order in home run-friendly Chase Field. He had 104 home runs and 429 RBIs in seven seasons with the Minnesota Twins.
The 29-year-old outfielder was limited by injury to 99 games last season, batting .273 with 12 homers and 58 RBIs. In 2010, Kubel hit .249 in 143 games with 21 home runs and 92 RBIs. His best season came in 2009, when he batted .300, hit 28 home runs and drove in 102.
The Twins had talked about re-signing Kubel but chose instead to sign ex-Oakland slugger Josh Willingham. Kubel is the third longtime Minnesota player to leave as a free agent this offseason. Closer Joe Nathan signed with Texas and outfielder Michael Cuddyer signed with Colorado.
The Diamondbacks apparently plan to get Parra a significant amount of playing time as the backup at all three outfield positions. The reigning NL West champions have Chris Young in center and Justin Upton in right. When Arizona plays interleague games on the road, Kubel probably would be the designated hitter, opening more playing time for Parra.
The move also gives the team depth in case of injury.
Until now, Towers' offseason moves have centered on pitching. He acquired right-handed starter Trevor Cahill, lefty reliever Craig Breslow and cash from the Oakland Athletics for pitching prospect Jarrod Parker, reliever Ryan Cook and outfielder Collin Cowgill.
The team signed 41-year-old reliever Takashi Saito to a 1-year, $1.75 million contract.