The Diamondbacks have agreed to a three-year, $35 million contract extension with Aaron Hill, according to sources.

Hill hit .302 with 26 homers, 85 RBIs and 76 extra-base hits last season.

He already was signed for 2013 at $8 million.