Navy commandos stormed a French sailboat held by pirates off the Somali coast in an assault triggered by threats the passengers would be executed.
But one hostage was killed in the operation, demonstrating the risks of a military operation against sea bandits.
Four hostages, including a small child, were freed, French Defence Minister Herve Morin said.
Two pirates also were killed and three others were taken prisoner. They are to be brought to France for criminal proceedings, joining 12 pirates already jailed and awaiting trial.
It was the third time the French have freed hostages from the hands of pirates but the first time a hostage had been killed.
In a break with French government policy, authorities proposed paying a ransom during 48 hours of fruitless talks, but the pirates, armed with Kalashnikov rifles, rejected the offer, Mr Morin said, without divulging a sum.
The French also offered the pirates a French naval officer to hold in exchange for a mother and child but that too was rejected, the minister said.
A grim-faced Mr Morin, speaking at a news conference, said: “Negotiations were leading nowhere, and the boat was approaching the coast.”
He said French President Nicolas Sarkozy gave the order to attack. It was launched 20 nautical miles off the coast of Somalia.
The four remaining hostages, including the child, were being taken by French authorities to Djibouti. The dead hostage was identified as Florent Lemacon, the owner of the boat, the Tanit, and father of the family, the defence minister said.
Mr Lemacon was killed in an exchange of fire as he tried to duck down the hatch, the minister said.
President Sarkozy ordered the assault when all negotiations failed and the boat drifted toward the Somali coast – a “red line” France refused to go beyond, the defence minister said.
“The president’s instructions were particularly clear: No French taken to land,” he said.