Credit: The Associated Press

In this July 10, 2013, file photo, Detroit Tigers shortstop Jhonny Peralta makes a throw to first during a baseball game against the Chicago White Sox in Detroit. A person familiar with the negotiations tells The Associated Press that free agent shortstop Peralta and the St. Louis Cardinals have agreed on a four-year contract. (AP Photo/Carlos Osorio, File)

Free agent shortstop Jhonny Peralta and the St. Louis Cardinals have agreed on a four-year contract, giving the All-Star a fresh start after his Biogenesis drug suspension last summer.

The Cardinals filled a need by getting a top-hitting shortstop a month after losing the World Series in six games to Boston. Pete Kozma and Daniel Descalso, while generally good fielders, are light hitters.