It was packed with workers and schoolchildren eating breakfast.
A cooking gas cylinder exploded, causing explosives illegally stored nearby to detonate, police said.
Rescue efforts have now ended - officials say they have pulled all the bodies out of the wreckage. At least 35 people are in hospital with injuries.
After the gas cylinder exploded, onlookers and people looking for their relatives gathered at the scene.
The explosives then went off, worsening the toll from the blast.
The explosives were mining detonators which were stored illegally in a room next to the restaurant, officials said.
The restaurant was close to a busy bus stop. The blast knocked down a neighbouring building and damaged several others.
"It looks like someone had stored those explosives, the ones used in mining, in one of the buildings. But only further investigation will reveal the exact details," the AFP news agency quotes senior district police official Seema Alava as saying.
Petlawad is in Jhabua district, where there are several manganese and bauxite mines and, according to AP, many mine workers are hired on contract from the town, which is about 850km (530 miles) south of the capital, New Delhi.
At least 89 people have been killed in a powerful explosion that tore through a restaurant in Petlawad in the Indian state of Madhya Pradesh, officials say.