Arizona Diamondbacks outfielder Justin Upton used the no-trade clause in his contract to reject a proposed deal that would have sent him to the Seattle Mariners, a baseball source confirmed to ESPN.com.

Upton's decision was first reported by Foxsports.com and confirmed by the Arizona Republic, which reported that Seattle was ready to give up a "substantial package'' in exchange for the outfielder.

Arizona general manager Kevin Towers has been weighing offers for Upton throughout the offseason. Upton, 25, is a two-time All-Star and finished fourth in the National League MVP balloting in 2011. But he had a subpar season in 2012 -- .280 batting average with 17 home runs and 67 RBIs -- and his name surfaced in trade rumors at the July deadline and again this offseason.

Seattle ranked last in the American League in runs scored and team OPS last year, and general manager Jack Zduriencik continues to try to upgrade the offense after signing veteran free agents Jason Bay and Raul Ibanez and acquiring Kendrys Morales in a trade with the Los Angeles Angels.

"We have interest in improving our club any way we can,'' Zduriencik said in an email to ESPN.com earlier this week. "We have had a lot of dialogue regarding offense, but we would be open to anything.''

Arizona's outfield, already full with Upton, Jason Kubel, Gerardo Parra and prospects Adam Eaton and A.J. Pollock, got even more crowded recently when the Diamondbacks signed free agent Cody Ross to a three-year, $26 million contract. The Ross acquisition spawned a new flurry of trade rumors around both Upton and Kubel.

Texas, Baltimore, Atlanta and San Diego are among the other clubs that have been mentioned in trade speculation surrounding Upton, whose contract allows him to block deals to four teams -- Seattle, Toronto, Boston and the Chicago Cubs.