The Minnesota Twins have agreed to a two-year, $21 million deal with Marvin Gonzalez, according to league sources.

The deal is worth $12 million this season and $9 million in 2020.

Gonzalez played every position except catcher and pitcher for the Houston Astros last season.