The Red Sox have agreed to a three-year, $39 million contract with Mike Napoli, according to a baseball source.

The agreement is pending a physical.

Napoli is expected to play first base for the Red Sox, who he visited last month.

He has shown that Fenway Park is to his liking, posting a .306/.397/.710 line there in 19 games, with seven home runs and 17 RBIs.