Holliday, who made his name with the Colorado Rockies, finished last season with the Cardinals before opting for free agency.
Local media reported the contract is for seven years and had a guaranteed $120 million over the period of the agreement.
St. Louis said in a statement the agreement was pending a medical and they expected to make a formal announcement within 48 hours. They gave no financial details.
The three-time All-Star joined St. Louis in July after he had spent a brief spell with the Oakland Athletics.
Holliday told ESPN Radio that he was taken aback by the money he would receive.
"Sometimes when you take a big-picture look at things it is overwhelming. It is a tremendous amount of money. When you are a little kid growing up, you hope to be a professional baseball player playing in the major leagues.
"I don't think you ever think about the money. Now that you look at it and it is that kind of money, it is a little overwhelming."
The Cardinals lost 3-0 to the Los Angeles Dodgers in their divisional playoff series.
(Reporting by Simon Evans; Editing by Greg Stutchbury)