Two luxury hotels in Indonesia's capital have been struck by explosions, killing at least nine people and injuring dozens of others.

South Jakarta police spokesperson Col. Firman Bundi said four foreigners died in the apparent attack. Their bodies have been taken to hospital.

A top health official said another two people were seriously injured, including a New Zealander, while a hospital emergency room reported at least a dozen people were being treated. Other reports said more than 50 had been hurt.

The first explosion hit the Ritz-Carlton, completely destroying its facade, and the second blast hit the nearby JW Marriott hotel.

A witness said the explosions were about five minutes apart.

The hotels are located in an upscale Jakarta neighbourhood. Police have now sealed off the area.

The Marriott was targeted in a 2003 attack that killed 12 people. It's believed the Southeast Asian terror network Jemaah Islamiyah was responsible.

With files from The Associated Press