Gomes, who turns 32 on Thursday, has eight-plus seasons of big league experience with the Tampa Bay Rays, Cincinnati Reds, Washington Nationals and Oakland Athletics. He spent the 2012 season with the A's and hit .262 with 18 homers and 47 RBIs.
The deal with the Red Sox represents a significant raise for Gomes, who earned $1 million with Oakland this past season.
CSN New England earlier had reported the sides were nearing an agreement.
Gomes' previous 25 home runs have been hit to either left or left-center field, according to ESPN Stats & Information, so his swing could give Boston an added advantage at Fenway Park. In 31 career games at Fenway, however, Gomes has a .262 average with three homers and seven RBIs.
Even with Gomes in the mix, Red Sox general manager Ben Cherington still would like to add another outfielder, and the team remains interested in re-signing Cody Ross. Gomes (.284/.382/.512) and Ross (.284/.353/.575) have similar career numbers versus left-handed pitching.
Gomes is known as a leader both on and off the field, and he'll likely serve in a platoon role for the Red Sox. He can play both corner positions.
Information from ESPN The Magazine's Buster Olney and ESPNBoston.com's Joe McDonald was used in this report.