Hosmer's deal is for eight years, with an opt-out clause after five years, according to MLB Network.
Hosmer, 28, spent the first seven years of his career with the Kansas City Royals.
Entering the 2018 season, Hosmer has batted.284 with 127 career home runs and 566 RBI.
It will be the the largest contract in Padres history and one of the more surprising free agent signings of the offseason.
The 28-year-old, two-time Gold Glove victor hit a career-high.318 and matched his best from the previous season with 25 homers, and drove in 94 runs and scored 98 for the Royals last season. The Rays received shortstop prospect Jermaine Palacios as part of the deal with the Twins and will get a player to be named later from the Angels.
The trade sent the 27-year-old Odorizzi (Highland High) to his third major league team. He made his debut with Kansas City in 2012 before being dealt to Tampa Bay the next season. Although he only has limited experience at Petco Park in his career, the first baseman has absolutely raked.
He played in all 162 games past year. Myers started 153 games at first base in 2017 - and appears to be switching positions now. Hosmer also receives a $5 million signing bonus. The Reds offered $5.1 million.