Seattle designated the 26-year-old Carp for assignment earlier this month, and the Mariners will receive a player to be named or cash from Boston. Carp can play both first base and left field.
"It increases the competition," Boston manager John Farrell said. "We've been able to add a talented player to camp here, someone that we've had conversations about throughout the course of the offseason. Finally he became available."
Carp was drafted by the Mets in 2004, and he was traded to Seattle in December 2008 in a deal that sent reliever J.J. Putz to New York.
Carp appeared in 173 games with Seattle from 2009-12 and batted .255 with 28 doubles and 18 homers. In 2011, Carp hit .276 with 12 homers in a career-high 79 games. His average dipped to .213 in 59 games last year.
The Mariners have Justin Smoak and Kendrys Morales as their top first basemen. Carp also played some outfield but was deemed expendable with the club in need of pitching. He was designated for assignment Feb. 12 to make room on the 40-man roster for pitcher Joe Saunders.
Boston made room for Carp on its 40-man roster by putting outfielder Ryan Kalish on the 60-day disabled list. Kalish is recovering from right shoulder surgery.
The Red Sox signed Jonny Gomes to play left field. Fellow newcomer Shane Victorino is expected to be in right, with Jacoby Ellsbury in center.
Boston is hoping Mike Napoli can be its regular first baseman, but there are still roster spots available that Carp could fill. The Red Sox signed first baseman Lyle Overbay to a minor league contract, but his chance of making the team may be diminished with Carp's arrival.
"You bring guys in here to win games and to give options, because you never know those unknowns. I think their biggest thing was playing outfield and first base," Overbay said. "I knew all that coming into it, so it's not that big of a surprise. I'll just do what I can, and see if I fit. That's all I can do."