The earthquake struck at a depth of 46 kilometres (29 miles) at 8:22 am local time (2322 GMT Saturday) in the Banda Sea near the Maluku islands, according to the US Geological Survey.
Indonesia's National Disaster Management Agency said there was no tsunami, but that the quake caused the injuries and damage on a small nearby island. No deaths were reported.
"From the preliminary report we received, the impact of the quake was quite significant in two villages on Ambalau island," said agency spokesman Sutopo Purwo Nugroho.
Quake-prone Indonesia sits along the Pacific "Ring of Fire", where tectonic plates collide and cause frequent seismic and volcanic activity. A huge undersea earthquake in the Indian Ocean in 2004 triggered a tsunami that swamped parts of Indonesia's Aceh province on Sumatra island.
The tsunami killed more than 170,000 people in Indonesia and tens of thousands more in other countries surrounding the Indian Ocean.