President Francois Hollande on Sunday said France "abandoned" Algerians who fought alongside French colonial forces in the Algerian war of independence, honouring a 2012 pledge.
Tens of thousands of the fighters, known as "harkis", were recruited by French forces but only around 60,000 were allowed to settle in France after French forces withdrew in 1962.
The rest - between 55,000 and 75,000 according to historians - were left in Algeria where they were accused of being traitors and many massacred.
Those who were admitted to France were placed in squalid camps.
In a ceremony in the Invalides in Paris, where France honours its war dead, Hollande finally said what the harkis have waited more than half a century to hear.
"I recognise the responsibility of French governments in abandoning the harkis, the massacres of those who remained in Algeria and the inhuman conditions for those transferred to camps in France," Hollande said.
"France failed to keep its word. It turned its back on families even though they were French."
Former president Nicolas Sarkozy and far-right leader Marine Le Pen, who has championed the harkis' cause, attended the ceremony.
Around half a million harkis and their descendants live in France and they have fought a decades-long struggle for official recognition of what happened to those left behind in Algeria. In April 2012, just days before the first round of the presidential election, Sarkozy became the first president in history to visit the camp in the southern town of Rivesaltes, where tens of thousands of harkis were interned after the war.
That same month, Hollande, then the Socialist candidate, promised that he would officially recognise the harkis' contribution and France's culpability.
With seven months to go to an election in which he might seek a second term in office, Hollande has kept his promise.
The seven-year war of independence in Algeria saw nationalists rise up against and eventually defeat their French colonial rulers.
There were atrocities on both sides during the conflict that left at least 400,000 dead.