A person familiar with the negotiations tells The Associated Press that free agent shortstop Jhonny Peralta and the St. Louis Cardinals have agreed on a four-year contract.
The person spoke on condition of anonymity Sunday because there was no official announcement.
The two-time All-Star needed to pass a physical to complete the contract.
Other media outlets had first reported the deal.
The 31-year-old Peralta was suspended 50 games last season for his involvement in the Biogenesis drug scandal.
He returned to the Detroit Tigers at the end of the season, but he became expendable because the team had traded for young shortstop Jose Iglesias.
St. Louis went to the World Series last month and lost in six games to Boston.
Pete Kozma and Daniel Descalso are generally good fielders, but were light hitters.