Many people were on the beach in Palu, preparing for a festival, and were caught when waves up to 3m (10ft) in height swept in.
Video shows people screaming and fleeing in panic.
"The tsunami... dragged cars, logs, houses," Sutopo Purwo Nugroho, a spokesman for Indonesia's disaster agency, told Reuters news agency. "It hit everything on land."
As well as destroying homes, the quake wrecked a shopping centre, a mosque, a hotel and a road bridge.
An air traffic controller at Palu airport died ensuring a plane took off safely after Friday's quake.
What do survivors say?
When the quake hit, "we all panicked and ran out of the house," Anser Bachmid, 39, told AFP news agency. "People here need aid - food, drink, clean water. We don't know what to eat for dinner tonight."
"I just ran when I saw the waves hitting homes on the coastline," Palu resident Rusidanto said.
Dwi Haris, who was in the city for a wedding, was staying in a hotel with his wife and daughter when the quake struck.
"There was no time to save ourselves," he told the Associated Press news agency. "I was squeezed into the ruins of the wall... I heard my wife cry for help but then silence. I don't know what happened to her and my child. I hope they are safe."
With back and shoulder injuries, he is being treated outdoors at Palu's Army Hospital.
What is being done to help?
Aid is being flown from the capital Jakarta into Palu airport, using the part of its runway still intact.
Patients are being treated in the open outside city hospitals and at least one military field hospital has been erected.
The regional head of the Indonesian Doctors Association (IDI), Komang, asked the authorities for immediate help.
"We need tents, medicines, medical personnel, tarpaulins, blankets and more of other things," he said.
The UK-based charity Save the Children is sending an assessment team to the disaster zone.
"Unfortunately the more information that we're getting, the worse the situation appears to be," charity spokesman Tom Howells told the BBC from Jakarta.