The deal is worth $2.5 million. The Philadelphia Inquirer reported that the contract includes an option for a second year.
Barajas, 31, is a .240 career hitter with 58 home runs in six seasons with Arizona and Texas. His best year came in 2005, when he hit 21 homers and drove in 60 runs for the Rangers.
Barajas was on the verge of signing a guaranteed $5.25 million, two-year contract with Toronto earlier this offseason, but switched agents and changed his mind before taking a physical exam. The Blue Jays responded by signing their incumbent catcher, Gregg Zaun, to a two-year, $7.25 million deal.
The Phillies, who allowed veteran Mike Lieberthal to leave for the Los Angeles Dodgers through free agency, had been planning to go with a combination of Carlos Ruiz and Chris Coste behind the plate this season.
Now manager Charlie Manuel will have Barajas and Ruiz as his catching tandem, and Coste will be used as a pinch-hitter, third catcher, and backup at first and third base.
Jerry Crasnick covers Major League Baseball for ESPN Insider.