Financial terms were not disclosed by the club, but MLB.com's Jon Paul Morosi reported the deal is worth $106 million.
Upton's new contract will span through the 2022 season and will supersede his existing deal that paid him $88.5 million through the 2021 campaign.
Upton tweeted his gratitude toward the Angels:
"I am currently out of the country but wanted to say thank you to the @Angels for the opportunity to come back to Anaheim."
The four-time All-Star was acquired from the Detroit Tigers on Aug. 31 for right-handed prospects Grayson Long and Elvin Rodriguez. Upton batted .245 with seven homers and 15 RBIs in 27 games with the Angels after hitting .279 with 28 homers and 94 RBIs in 125 contests with the Tigers.
Upton set career highs in homers (35), doubles (44), extra-base hits (79), RBIs (109), slugging percentage (.542) and OPS (.904) last season.
The 30-year-old Upton is batting .269 with 875 runs scored, 256 homers, 812 RBIs and 138 stolen bases in 1,489 career games with the Arizona Diamondbacks, Atlanta Braves, San Diego Padres, Tigers and Angels.