The morning collision, around 50 kilometres (30 miles) east of the capital Bangkok, toppled the bus on its side and sheared off part of its roof.
Dozens of injured passengers were rushed to nearby medical facilities for treatment, said provincial hospital director Sombat Chutimanukul.
"Four are in critical condition and eight remain under observation" out of the 23 admitted to her hospital, she told reporters.
State Railway of Thailand governor Nirut Maneephan confirmed the death toll at the site of the crash to reporters.
Footage shared by a government department showed the bus edging from the road onto train tracks before a blue cargo train slammed into its side.
Early photos taken by rescue workers showed gnarled metal and debris, with bodies lying by the tracks and people's belongings scattered around the scene.
Rescue workers lifted the injured on stretchers into nearby parked ambulances, and a crane arrived early in the afternoon to lift the vehicle off the tracks so that police could better assess the carnage.
There were some 60 passengers in the chartered bus travelling from neighboring Samut Prakan province to a temple in Chachoengsao, said province governor Maitree Tritilanond.
They were planning to offer yellow robes to monks -- a traditional ceremony held within a month of the end of Buddhist Lent, he told reporters.