Murphy traveled to Fort Myers, Florida, for a physical exam on Monday and the deal was officially announced in the evening.
He will receive a base salary of $2 million if he makes Boston's major league roster, a source said.
Murphy, 34, is a .274 career hitter with a .765 OPS over 10 seasons with the Red Sox, Texas Rangers, Cleveland Indians and Los Angeles Angels. Boston selected him out of Baylor with the 17th overall pick in the 2003 first-year player draft and sent him to Texas in 2007 as part of a four-player trade that brought closer Eric Gagne to the Red Sox.
Last year, Murphy hit .283 with 10 homers and 50 RBIs in 132 games with the Indians and Angels.
Murphy will compete for a spot in a Red Sox outfield that includes Mookie Betts in right field, Jackie Bradley Jr. in center and Rusney Castillo in left, with Chris Young and Brock Holt as bench options.