Wacha, 28, will be getting $3 million guaranteed from the Mets and could make another $7 million in performance bonuses and incentives, a source told ESPN's Jeff Passan.
The New York Post was first to report the deal, which is still pending a physical.
Wacha had spent his entire seven-year career with the St. Louis Cardinals. The right-hander went 6-7 last season with a 4.76 ERA in 29 games -- 24 starts. He failed to post a win after July 19 as he dealt with a strained right shoulder down the stretch.
Wacha had avoided arbitration in 2019, agreeing to a $6.35 million deal with St. Louis. He was limited to 15 starts during the 2018 season because of a strained muscle in his left side, but he still went 8-2 with a 3.20 ERA.
Overall, Wacha has a 59-39 record with a 3.91 ERA and was MVP of the 2013 NLCS as a rookie. His 759 career strikeouts are tied for 19th in Cardinals history with Mort Cooper (1938 to 1945).