Upton, a four-time All-Star, was released by the Los Angeles Angels on April 8 heading into the final season of a $106 million, five-year guaranteed contract. Seattle must pay him only a prorated share of the $700,000 major league minimum.
The 34-year-old Upton batted .211 with 17 home runs, 41 RBIs and a .705 OPS in 89 games for the Angels last season.
The top pick in the 2005 amateur draft, Upton is a .262 career hitter with 324 homers, 1,000 RBIs, 151 stolen bases and an .814 OPS in 15 major league seasons with Arizona, Atlanta, San Diego, Detroit and the Angels. He has won three Silver Slugger Awards.
The outfielder will report to extended spring training with the Mariners in Peoria, Arizona. Once he's ready, Upton could be a candidate to plug a hole for Seattle at designated hitter.
The team could also use help in the outfield, where Mitch Haniger is sidelined with a high ankle sprain and newcomer Jesse Winker has struggled at the plate. Touted youngster Jarred Kelenic slumped badly before getting demoted to the minors.
To make room for Upton on the 40-man roster, right-hander Adrian Sampson was designated for assignment following Saturday's 6-5 loss to the Boston Red Sox.
The 30-year-old Sampson was claimed off waivers by Seattle from the Chicago Cubs and optioned to Triple-A Tacoma. He did not get in a game with the Rainiers.