The collision happened yesterday when the bus was attempting to cross rail tracks in the town of Anahuac, Nuevo Leon, state civil protection chief Jorge Camacho told AFP.
The accident occurred just after 5:00 pm (local time) at Camarones station, near the US border.
At least two children were reported among the dead, Camacho said.
Images broadcast by local media showed the bus split in half by the force of the train.
More From This Section
The bus, which normally transports around 40 people, was traveling with 51 passengers, as it made its way from Nuevo Laredo to the northern city of Nueva Rosita.
Camacho said an investigation was underway to determine whether the bus driver was trying to beat the train when the vehicle was struck.
There was no fog or rain in the area at the time, he said.