Veteran slugger Adam Duvall has agreed to terms with the Marlins.