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.
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.
Four Mariners players remain eligible for arbitration: closer David Aardsma, right-hander Brandon League and left-hander Jason Vargas.