The deal is pending a physical, according to MLB.com's Jesse Sanchez.
Further details about who is headed to the Marlins have not been disclosed yet.
Ozuna finished last season as an All-Star, Silver Slugger and Gold Glove award winner after hitting 37 home runs with a .312 batting average and 124 RBIs. Ozuna is in his second season of arbitration eligibility and will not hit the free agent market until after the 2020 season.
The Cardinals were interested in Giancarlo Stanton before he was traded to the New York Yankees in exchange for second baseman Starlin Castro and prospects. The Marlins had agreed to the framework of a deal with the Cardinals and Stanton met with the team before rejecting the trade.
The Cardinals already have Tommy Pham, Dexter Fowler and Stephen Piscotty on their roster as outfield options.