The Boston Red Sox and utility player Marwin Gonzalez have agreed to a one-year, $3 million deal, sources confirmed to ESPN on Thursday.