The race will be held in the south of France at the Circuit Paul Ricard - also known as Le Castellet - which last staged the event in 1990.
The deal was announced by Christian Estrosi, the president of the regional authority of Provence and the Cote d'Azur, in Paris on Monday.
The French Grand Prix was last held at Magny-Cours in central France in 2008.
France hosted the first grand prix in 1906 but lost its race because the organisers were unable to fund the event.
Le Castellet is owned by the family trust of F1 commercial boss Bernie Ecclestone, but he told Reuters last week the promoters were renting the track from it.
The 86-year-old said the race was likely to be held at the end of July.