Cuban outfielder Daniel Carbonell has agreed to a four-year, $3.5 million contract with the Giants.