
Firefighters and rescue workers cordoned off the collision site, with investigators seen peering into the burnt-out shell of the bus.
Pedestrians were ushered away from the busy downtown intersection, which is used by tens of thousands of vehicles each day.
"Eight people have died and 35 others were injured," Bangkok police chief Urumporn Koondejsumrit told AFP, adding that two of the injured were in serious condition.
The collision happened early in the afternoon, with images on social media showing the train approaching a level crossing at a moderate speed before colliding with the bus, which instantly burst into flames.
"The fire is now out and we are trying to recover the bodies," Urumporn said.
The flames appeared to spread quickly.
"I didn't dare look back to see if there were any victims," a witness who was near the intersection with her daughter told public broadcaster Thai PBS.
- 'I was terrified' -
Another unidentified witness told Royal Thai Police TV that their car had been at the railway crossing.
"I'm still in shock. Suddenly, I heard a loud noise and something hit my car, pushing it away. Then I saw the bus stuck to the train and flames everywhere. I was terrified," they said.
Thai Prime Minister Anutin Charnvirakul has ordered an investigation into the incident, according to a statement from his office.
Deadly transport accidents are common in Thailand, which regularly tops lists of the world's most lethal roads, with speeding, drunk driving and weak law enforcement all contributing factors.
The collapse of a crane onto a passenger train killed 32 people and injured dozens in Thailand's northeast in January.
A collision between a freight train and a bus carrying passengers to a religious ceremony killed 18 people in 2020.
Three years later, eight people were killed in a collision between a freight train and a pickup truck crossing a railway line in the east of the country, reports BSS.