Molina, 35, hit .265 with a a career-high 20 home runs to go with 80 RBIs as the Giants' cleanup hitter last season.
It's a surprising move for both sides, because Molina had been negotiating a two-year deal with the New York Mets only days ago. The Mets offered one year with a vesting option, but Molina wanted two years guaranteed. He had hoped to land a three-year contract this offseason, and Giants general manager Brian Sabean had said the veteran catcher wouldn't return.
"That ship has sailed," Sabean said at the winter meetings last month.
The Mets may now turn their attention to former Rockies catcher Yorvit Torrealba to fill their starting vacancy.
"We have had discussions, but nothing is close. We did say we would talk. I'm waiting to hear from Omar [Minaya] and see where we go from here," Torrealba's agent, Melvin Roman, told 1050 ESPN New York's Andrew Marchand.
The Giants also agreed Tuesday to a $2.1 million contract with left-hander Jonathan Sanchez, avoiding arbitration. Sanchez threw a no-hitter on July 10.
San Francisco has two players in salary arbitration: ace Tim Lincecum and closer Brian Wilson. Lincecum asked for a record $13 million after winning the past two NL Cy Young awards, while the Giants countered with an $8 million offer. Wilson asked for $4.875 million, while the Giants countered with a $4 million offer.
While Molina appeared set to join the Mets, the Giants came back into the picture only recently.
Molina said late in the 2009 season that he would like to stay in San Francisco if shown he was wanted. Right away, Sabean ruled out giving Molina more than a one-year deal with Buster Posey set to be the club's catcher of the future.
Molina's previous $16 million, three-year contract ended after last season and he became a free agent. He also said he would like to retire as a Giant.
San Francisco was never prepared to make such a commitment considering Molina's age and health concerns. The Giants were ready to move forward with Posey, the fifth overall pick in the 2008 draft, if no other opportunity emerged. Yet Sabean had said this winter he didn't think Posey was ready to be a full-time major league catcher and would prefer he start the season with Triple-A Fresno to gain more experience.
Posey hit .325 with 18 homers and 80 RBIs in the minors last season and played seven games with San Francisco in September.
Information from The Associated Press was used in this report.