In return, the Marlins will receive right-handed pitching prospect Sandy Alcantara, outfielder Magneuris Sierra, right-hander Zac Gallen and lefty Daniel Castano.
Ozuna, 27, is coming off a career-best season, setting personal bests with a .312 batting average, 37 home runs and 124 RBIs, which ranked third in the National League.
He is the third big name to have been jettisoned by the new Marlins regime, led by co-owner and CEO Derek Jeter. Ozuna joins National League MVP Giancarlo Stanton and second baseman Dee Gordon as those traded since the sale of the team.
"You would hope ... that MLB would screen the ownership so that we have someone come in and provide additions," agent Scott Boras, who represents Ozuna, said Wednesday. "[Instead], they come in, and they redirect, so you're not a jewelry store that's coveting your diamonds. You become a pawn shop that's trying to pay the rent of the building."
The Marlins' purge won't include outfielder Christian Yelich, who is no longer in play as a trade candidate, a source told ESPN's Jerry Crasnick. After trading Stanton, Gordon and Ozuna, the Marlins can easily afford to keep him. Yelich will make $7 million this season and is owed a guaranteed $44.5 million through 2021.
Ozuna, who earned $3.5 million last season, is due for arbitration this offseason but will not reach free agency until 2020 at the earliest.
According to Statcast, Ozuna had 129 hits with an exit velocity of 95 mph or higher, which ranked third in the majors behind Jose Abreu (132) and Stanton (132).
The two-time All-Star selection is also solid defensively, having won his first Gold Glove in 2017.
In five seasons, all with the Marlins, Ozuna has a career .277 average with 96 home runs and 361 RBIs.
The hard-throwing Alcantara, 22, had a 4.32 ERA in eight appearances with the Cardinals after spending the majority of the season in the minors -- boasting a ratio of 7.6 strikeouts per nine innings -- at the Double-A level.