The Angels and outfielder Justin Upton have agreed to a five-year contract extension that will keep Upton in Los Angeles through 2022, the club announced Thursday.

Upton's deal is worth $106 million, a source told MLB.com's Jon Paul Morosi.