A passenger train has crashed and exploded into flames killing around seven people, after crashing into a gas truck in south Jakarta.

The Serpong to Tanah Abang train was passing through the southern suburb of Bintaro at about 11.23 am local time (3.23 pm AEDT) when it hit the truck carrying petrol for state company Pertamina, and burst into flames. Witnesses said the truck had failed to stop at the level crossing, that the barrier had failed to close, even though the warning bells were sounding.

The front carriage of the passenger train, which is reserved for women only to protect them from sexual harassment, bore the brunt of the crash. A fireball immediately engulfed the carriage as flames burst 20 metres into the air. It was still in flames 90 minutes later.

The driver of the train was thought to have died in the crash. Reports say the front carriage was very full of passengers, which had compounded the difficulty of escaping from the wreckage.