Waves of up to 2m (6.6ft) high swept through Palu on Sulawesi island.
Video on social media shows people screaming and fleeing in panic and a mosque amongst the buildings damaged.
Last month, a series of deadly earthquakes struck the Indonesian island of Lombok, with the biggest, on 5 August, killing more than 460.
Indonesia’s disaster agency said at least 48 people have been killed from the latest quake but that the figure could rise.
“We have not received comprehensive reports yet because communications are cut. Many bodies were found along the shoreline because of the tsunami, but the numbers are still unknown,” Sutopo Purwo Nugroho, a spokesman for the agency, told Reuters.
It is not clear whether the deaths came in the quake or the resulting tsunami.
Palu is home to more than 300,000 people. Rescue operations have started but a minister said that communications had been disrupted and that the runway in the city was damaged, although it was hoped that helicopters would still be able to land.
The earthquake hit just off central Sulawesi at a depth of 10km (6.2 miles) just before 18:00 (11:00 GMT), the US Geological Survey said.
A tsunami warning was issued, but lifted within the hour.
Dramatic video of the tsunami hitting Palu shows the high waves sweeping away several buildings and then the large tilted mosque in the town, about 80km from the quake’s epicentre.
“The situation is chaotic, people are running on the streets and buildings collapsed. There is a ship washed ashore,” said Dwikorita Karnawati, head of Indonesia’s meteorology and geophysics agency.
A 2004 tsunami triggered by an earthquake off the Indonesian island of Sumatra killed 226,000 across the Indian Ocean, including more than 120,000 in Indonesia.
Indonesia is prone to earthquakes because it lies on the Ring of Fire – the line of frequent quakes and volcanic eruptions that circles virtually the entire Pacific rim.
More than half of the world’s active volcanoes above sea level are part of the ring.