Seattle designated the 26-year-old Carp for assignment earlier this month, and the Red Sox were able to work out a deal for him. Carp can play both first base and left field. Boston and Seattle announced the move Wednesday.
Carp was drafted by the New York Mets in 2004, and he was traded to Seattle in December 2008 in a deal that sent reliever J.J. Putz to New York.
The 26-year-old Carp was designated for assignment on Feb. 12 to make room on the 40-man roster for starting pitcher Joe Saunders. Carp appeared in 173 games over four seasons with Seattle from 2009-2012 and batted .255 with 28 doubles and 18 home runs. 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.
Boston also put outfielder Ryan Kalish on the 60-day disabled list. He is recovering from right shoulder surgery.