The deal is worth around €30 million per season after taxes, The Guardian's Fabrizio Romano reports.
Neymar's previous deal was set to expire at the end of next season.
He's already won nine trophies since joining the club from Barcelona in 2017 for a record €222 million. The 29-year-old has yet to win the Champions League, falling short in the final last year and again in the semifinals this week.
Despite numerous injuries and suspensions over the last four years, the Brazilian said he's "very happy" at PSG.
"I have changed a lot. I have learned a lot," Neymar, who's racked up 85 goals and 51 assists in 112 games for the club, said in a statement. "Things have happened that should not have happened. We had fights, a few sad times, but overall, the evolution has been very positive. I am happy, I am proud to be part of the history of Paris Saint-Germain."
Mbappe indicated in January he'd only sign a long-term deal if they agree on a "suitable project."
His contract expires in June 2022.