Outfielder Michael Cuddyer and the Twins agreed Friday to a $24 million, three-year contract, as reported by the Associated Press.