The attack, which also injured scores of people, including dozens of children, on France’s national day, was the third terrorist atrocity to hit the country in 18 months, following the Charlie Hebdo killings and the massacre of 130 people in Paris in November.
“The whole of France is facing the threat of Islamist terrorism,” the president, François Hollande, said. He summoned senior ministers for a defence council on Friday morning before heading to the scene in Nice.
France has declared three days of national mourning, starting on Saturday, and a state of emergency that had been due to expire on July 26 was extended for three months.
“We are facing a war that terrorism has brought to us,” said Manuel Valls, the prime minister. “The only answer should be that of a united France.” Condolences poured in from around the world and officials in London and Washington said leaders were being briefed on the situation.
As the authorities confirmed a rising death toll, with 18 of the injured said to be in a critical condition, the scene of the attack, the seafront Promenade des Anglais, was closed off by police on Friday morning and people were advised to stay at home.
The horror began shortly before 11pm when a balmy festival atmosphere was shattered as the truck drove on to the waterfront road and began ploughing through crowds. Officials said the driver wove along the road, knocking people down “like skittles”, for a distance of at least 2km.
Video footage showed the 19-tonne white truck speeding up as it drove into the screaming crowds while several people tried to chase it on foot.
Witnesses said people pushed each other out of the way, jumped down to the beach and even ran into the sea to avoid the vehicle.
Jaqueline Lacour and her companion George Pellet were sitting on their beachfront balcony watching the fireworks when chaos broke out.
“We were about to put away our camera when we saw a huge white truck plough into the crowd,” she said. “We could hear the awful thump every time a body hit the front of the vehicle. One man right in front of us was literally thrown into the air. He laid dead for ages. People were screaming. A group of teenagers were trying to hide on the beach.
“A man stayed next to a body for what seemed to be hours, he kept screaming: ‘Help me, help me!’. It must have been one of his family members.”
The attacker, identified by police as a 31-year-old Tunisian-born Frenchman, opened fire before police killed him with a volley of shots through the windscreen. Reports said the individual was known to police for lower-level crimes, such as theft and violence, but had not been put on a watchlist by French intelligence services.
No groups have claimed responsibility for the attack, but Hollande said it was “terrorist in nature” and called up military and police reservists to relieve forces that have been involved in the state of emergency in place since the November attacks.
“Nothing will make us yield in our will to fight terrorism,” he said in a pre-dawn address. “We will further strengthen our actions in Iraq and in Syria. We will continue striking those who attack us on our own soil,” he said, referring to France’s current airstrikes on Isis.
Maryam Violet, an Iranian journalist on holiday in the Mediterranean city, told the Guardian she had seen the truck running over people as they walked in the pedestrian area minutes after the fireworks finished. “Everyone was completely shocked, I saw that suddenly people were fleeing and shouting,” she said.
“People were shouting, ‘It’s a terrorist attack, it’s a terrorist attack.’ It was clear that the driver was doing it deliberately,” she said. “I was walking for nearly a mile and there were dead bodies all over the place.
“I saw two sisters and one brother from Poland that were mourning the death of their two other siblings. There were so many Muslim people who were victims because I could see they had scarves over their head and some were speaking Arabic. ”
A spokesman for the British prime minister, Theresa May, said she was being kept up to date on events, adding: “Our thoughts are with all those affected by this terrible incident on what was a day of national celebration.”
The White House said Barack Obama was being kept updated. The president condemned “what appears to be a horrific terrorist attack in Nice” and said he had directed his team to offer any assistance France may need in its investigation.
The Republican presidential candidate, Donald Trump, said on Twitter that, after the events in Nice, he was delaying a press conference planned for Friday to announce his running mate.
On Friday morning, the picturesque resort was all but deserted, the esplanade cordoned off and the white goods truck visible from a distance, its windscreen pockmarked with bullet holes and its front buckled.
On the street, Piero Bianculli, 37, an Italian musician who grew up in Nice, said he had been at his stepfather’s apartment on the beachfront watching the fireworks display from the balcony when the lorry hit.
“We had been invited over to watch the fireworks because he had such a beautiful view of the sea,” Bianculli said. “Suddenly we saw people in the street running and screaming, we thought it was a false alarm or some sort of joke, but when I looked to the right I saw bodies flying in the air, and people thrown to the ground who didn’t get up.
“I took my binoculars and looked all the way up the promenade, and saw dead bodies lying scattered where they had fallen, bleeding. There was blood streaming across the street.”
Others who had witnessed the attack were seen wrapped in blankets, shaking their heads and crying. Restaurant owners on the beachfront described sheltering panicked crowds.
A man in a white blanket, haggard and dazed, limped down the street as neighbours tried to hold him up. “He’s lost his whole family,” said a woman, crying behind her sunglasses.
On street corners, huddles of tourists sat on their luggage, waiting for taxis to rush them to the airport. A US tourist, Julie Holland, said she was having dinner with her daughters on Thursday night when the truck drove at full speed through the crowd. “We heard screams, and people started running into the restaurant. We hid in the kitchen, behind a stove.”
“As soon as the gunfire stopped we went through the back door to a hotel down the street. A policeman eventually escorted us back to our hotel at around 3am. There were bodies everywhere. My daughters saw bodies, lots of them.”
At the Mediterranean University Centre, where emergency psychological support is being given to those who were on the promenade, people were bundled up in blankets outside, some covered in blood or bandages.