The contract runs through 2022. It is worth $106 million, a league source told ESPN, confirming a report by USA Today Sports.
Upton, 30, had an opt-out clause in his previous deal after this season. That contract ran through 2021.
The Angels acquired Upton in a trade with the Detroit Tigers on Aug. 31 that also included an exchange of minor league players.
Upton, a four-time All-Star, hit .273 with 35 home runs and 109 RBIs this season.