Ken Rosenthal of Fox Sports reports the deal is for $82.5 million over five years with a full no trade clause.
KSDK Sports in St. Louis first reported that Fowler was on his way to St. Louis for a physical on Friday.
Fowler, 31, had a career high .393 on-base percentage for the Cubs last season, and was instrumental in their run to the team’s first World Series title in 108 years. He figures to bat leadoff in St. Louis, as well.
After the Cubs poached outfielder Jason Heyward and pitcher John Lackey from the Cardinals last off-season and outfielder Jon Jay this month, St. Louis appears to have advanced the off-field competition between the two franchises as well.
The Cubs extended Fowler a qualifying offer, which he turned down, which means the Cardinals must forfeit the No. 19 pick in the upcoming draft, and the Cubs will receive a compensatory pick.