Nadal demolished Djokovic, breaking the Serbian's serve three times to win the opening set to love with only two unforced errors under the roof on court Philippe Chatrier. He then kept the pressure up in the second set before edging out Djokovic in the third with Nadal going on to secure victory with an ace.
The victory was Nadal's 100th win at Roland Garros. Players have reached triple digit wins at the other three Grand Slams, but never in Paris.
"First of all of course congrats to Novak for another great tournament, sorry for today," said Nadal after the match.
"In Australia (in the final in 2019) he killed me. We've played so many times, one day one wins, another day the other wins."
Djokovic had won five Grand Slam finals in a row since being beaten by Stan Wawrinka at the 2016 Australian Open, but he presented Nadal with few problems despite a lack of spectators amid the COVID-19 crisis.
The 34-year-old Nadal said he was not thinking about matching Federer's record of 20 Grand Slam titles.
"To win here means everything. I don't think today about the 20th and equal Roger on this great number, today is just a Roland Garros victory and that means everything to me," the world number two said.
"This love story I have with this city and this court is unforgettable," he added.
Nadal has now beaten Djokovic in all of their three French Open finals. The two have played each other 56 times, the most times two men have played each other at tour-level in the Open Era. The Serb leads the Spaniard in the head-to-head, 29-27.