Peguero, who turns 27 next month, is out of Minor League options and would have had to either make the 25-man roster this coming season or be exposed to waivers. He's hit .195 with nine home runs and 27 RBIs in 65 games over the past three years with Seattle.
Terms of Buck's deal were not announced, but CBSSports.com reported on Tuesday that he had agreed to a $1 million contract.
After passing his physical exam, Buck completed the deal Thursday and will join the Mariners' pitchers and catchers when they report to camp in Peoria, Ariz., on Feb. 12.
Buck, 33, hit .219 with 15 home runs and 62 RBIs in 110 games with the Mets and Pirates last year, joining Pittsburgh for its postseason drive in an Aug. 27 trade.
Buck was an American League All-Star with the Blue Jays in 2010, when he hit .281 with 20 home runs and 66 RBIs. He is a career .234 hitter with 133 home runs and 485 RBIs in 1,058 games with the Royals (2004-09), Blue Jays (2010), Marlins (2011-12) and Mets and Pirates (2013).
The 6-foot-3, 245-pounder has hit 63 home runs over the past four seasons, fifth most among active Major League catchers behind Brian McCann (85), Matt Wieters (78), Carlos Santana (71) and J.P. Arencibia (64).
Buck also ranks fifth among active catchers in career games and has played in 106 or more games in eight of his 10 Major League seasons, including the past four in a row.
How much he's used by the Mariners will likely depend on the development of Mike Zunino, who caught 52 games last year after being called up in midseason as a 22-year-old rookie. Zunino was the third-overall pick in the 2012 Draft and is regarded as the Mariners' catcher of the future, but Buck will add veteran stability and depth at a position where Seattle went through seven players during the regular season last year.
Jesus Sucre had been the only other catcher besides Zunino on the 40-man roster, and he's caught just eight games in the Majors. Jesus Montero began last season as the starting catcher, but was demoted to the Minors after getting off to a slow start and is now being converted to first base.
The Mariners also recently signed veteran Humberto Quintero to a Minor League deal with an invitation to Major League camp. Quintero caught 22 games last year after being picked up in late July after Zunino broke the hamate bone in his left hand.
Peguero's future with the Mariners could be over now after the big Dominican was designated for assignment. The 6-foot-5, 260-pounder has had several stints with the Mariners over the past three seasons, but figured as a long shot to earn a 25-man roster bid coming out of camp after Seattle signed free agents Corey Hart and Willie Bloomquist, traded for Logan Morrison and retained Franklin Gutierrez to go along with outfield returnees Michael Saunders, Dustin Ackley and Abraham Almonte.
Peguero has shown impressive power at times and represented Tacoma in the Triple-A All-Star Game last year. He hit .260 with 19 home runs and 83 RBIs in 118 games for the Rainiers in 2013, but he has had trouble making contact in his Major League opportunities with 84 strikeouts in 205 at-bats.