Perez and the Mets agreed to a three-year, $36 million deal, sources told ESPN.com's Jerry Crasnick and 1050 ESPN New York's Andrew Marchand.
The deal is pending a physical, the sources said.
The agreement was first reported by the New York Post.
Perez rejoins a rotation headlined by Johan Santana and that also includes right-handers John Maine and Mike Pelfrey. Newly signed right-handers Freddy Garcia and Tim Redding will vie for the fifth spot in the rotation.
Perez was 10-7 with a 4.22 ERA in 34 starts last year. He struck out 180 and also walked 105 in 194 innings. His 4.87 walks per nine innings were fourth-highest in the majors behind only Barry Zito, Daisuke Matsuzaka and Ian Snell.
He will receive $12 million in each of the three seasons, up from the $6.5 million he made last year after winning in salary arbitration.
The Post reported that Perez's signing all but signals that Pedro Martinez, also a free agent, will not return to the team for the 2009 season.
Perez has had issues with both consistency and control. He led the National League with 105 walks last season, and he threw a quality start (six innings or more, three earned runs or less) in only 50 percent of his 34 outings with the Mets.
But the Mets think Perez has the stuff to be a front-of-the-rotation starter if he can harness his command. He ranked 12th in the National League with 180 strikeouts last year despite pitching only 194 innings.
Perez will be only 30 years old at the conclusion of his three-year deal. His youth and potential upside worked in his favor when the Mets shifted course after losing out to Atlanta in the bidding for Derek Lowe. The Mets preferred Perez to Randy Wolf, Ben Sheets and the other free agent starters still on the market.
Jerry Crasnick covers Major League Baseball for ESPN.com. Andrew Marchand is the managing editor of 1050 ESPN Radio in New York. Information from The Associated Press was used in this report.