India's Defence Minister Manohar Parrikar and French counterpart, Jean-Yves Le Drian signed the agreement at a ceremony in New Delhi after years of tortuous negotiations.
"You can only ever be completely sure once [the deal] has been signed and that's what happened today," said Le Drian after the ceremony, referring to the delays.
Friday's agreement represents a substantial reduction from the 126 planes originally mooted, but is still one of India's biggest defence deals in decades.
Defence experts say it will bring a much needed boost to India's air force as it tries to renew its dwindling fleet of Russian MiG-21s -- dubbed "Flying Coffins" because of their poor safety record.
The world's top defence importer has signed several big-ticket deals as part of a multi-billion euro upgrade since Hindu nationalist Prime Minister Narendra Modi took power in 2014.
The increasing assertiveness of its giant neighbour China as well as its simmering rivalry with Pakistan have increased India's need to upgrade its military.
Friday's agreement is a major vote of confidence in the Rafale, which had long struggled to find buyers overseas, despite heavy lobbying efforts by the administration of French President Francois Hollande.
Hollande hailed the deal as recognition of France's aviation industry.
"The agreement... is a mark of the recognition by a major military power of the operational performance, the technical quality and the competitiveness of the French aviation industry," he said in a statement.
It is the biggest order for the Rafale after Egypt agreed to buy 24 of the jets in 2015 and Qatar purchased the same amount later that year.
The highly versatile Rafale is currently being used for bombing missions over Syria and Iraq as part of an international campaign against the so-called Islamic State armed group. It has also been deployed in the past for air strikes in Libya and Afghanistan.