Free agent third baseman Matt Chapman and the San Francisco Giants agreed on a three-year, $54 million contract on Friday.