Eddie Rosario has gone from hammering to helping the Indians.

The free-agent outfielder, who spent the past six seasons with the Minnesota Twins, agreed Friday to a one-year, $8 million contract with the Cleveland Indians, sources confirmed to ESPN on Friday.