Seattle announced the deal Monday, which includes a club option for 2013. The deal was first agreed upon during the winter meetings in Florida last month, but was subject to Olivo passing his physical.
Seattle also has agreed to a $2.75 million, two-year contract with shortstop Brendan Ryan, acquired last month in a trade with St. Louis. In a deal that avoids arbitration, Ryan gets $1 million this season and $1.75 million in 2012.
This will be Olivo's second stint with the Mariners after spending parts of the 2004 and 2005 seasons in Seattle. Last year, he hit a career-best .269 with 14 homers and 58 RBIs for Colorado.
Olivo spent 2008 and 2009 with Kansas City and has also played for Florida, San Diego and the Chicago White Sox. He hit a career-high 23 homers in 2009 with the Royals.
To make room on the 40-man roster, Seattle designated right-hander Anthony Varvaro for assignment.