Castro, a nine-year veteran, recorded a .232 batting average with 13 home runs and 30 RBIs in 79 games with the Twins last season. The left-handed batter has hit at least 10 homers in six seasons.
In 825 career games, Castro has belted 86 home runs, driven in 292 runs and averaged .231 per season.
Castro, 32, was selected in the first round of the 2008 MLB Draft out of Stanford. He spent six seasons with the Houston Astros before playing the past three seasons with the Twins.
Castro will round out an Angels lineup that added star third baseman Anthony Rendon this winter. Los Angeles is also expected to have top outfield prospect Jo Adell in the major leagues early next season.