Published: 2021-04-10 21:25:59 BdST
The quake, which struck at 2 p.m. (0700 GMT) local time, was felt across East Java, home to 40.7 million people, and nearby provinces, including the resort island of Bali, Indonesian media reported.
Ten people were lightly injured, while an unspecified number of people in several villages were moved to evacuation centres as some houses have been destroyed, the BNPB said.
More than 300 homes and dozens of other buildings, including schools, hospitals, government offices and places of worship, were damaged, the agency said.
The numbers could change as authorities collect more information about the extent of casualties and damage.
Images in media showed flattened houses in towns near the southern coast of East Java, the closest area to the epicentre of the quake.
A large gorilla statue in an amusement park in the town of Batu lost its head, news website Detik.com reported.
The quake struck in the Indian Ocean 91 km (57 miles) off the southern coast of East Java. It had a magnitude of 5.9 at a depth of 96 km, according to the European-Mediterranean Seismological Centre, which reduced the quake's magnitude from an initial 6.8.
Video shared by social media users showed people running out of a shopping mall in Malang city amid the strong tremor.
"I felt the earthquake twice, the first time for two seconds and then it stopped, but then it shook again for five seconds," Edo Afizal, a receptionist at a hotel in Blitar, told Reuters by phone.
Indonesia was struck last week by tropical cyclone Seroja, which triggered landslides and flash floods killing more than 170 people on islands in East Nusa Tenggara province.
Straddling the so-called Pacific Ring of Fire, Indonesia is regularly hit by earthquakes. A magnitude 6.2 quake that struck Sulawesi island in January killed more than 100 people.