The deal was waiting approval from the commissioner's office because it will involve around $1 million going from the Cardinals to the Padres, according to a source with knowledge of the deal, who spoke on condition of anonymity because the deal hasn't been finalized.
The Cardinals will get minor league third baseman David Freese.
Edmonds, 37, will return to Southern California, where he grew up and was drafted by the Angels in 1988. He played for the Angels from late in the 1993 season until being traded to St. Louis just before the 2000 season.
Edmonds was slowed by injuries last season but the eight-time Gold Glove winner recently pronounced himself fit.
The trade comes after the Padres were spurned by three outfielders in less than a week.
Cameron's agent broke off negotiations for a deal to bring back the center fielder on Friday. Left fielder Milton Bradley on Sunday accepted a one-year deal from the Texas Rangers worth approximately $5 million. The Padres had offered $4 million to bring back Bradley.
Plus, the Padres lost out in the bidding for Japanese outfielder Kosuke Fukudome, who signed with the Chicago Cubs.