The Boston Red Sox on Monday agreed to a three-year, $39 million contract with free-agent first baseman/catcher Mike Napoli, pending a physical, a baseball source with direct knowledge of the negotiations told ESPNDallas.com.