Free-agent catcher Welington Castillo agreed Friday to a $15 million, two-year contract with the White Sox, who also avoided arbitration with right-hander Danny Farquhar by reaching a $1.05 million, one-year deal.