A truck and a bus carrying passengers back from a pilgrimage to a Catholic shrine has crashed and burst into flames in eastern Mexico, killing at least 21 people and injuring 30, according to officials.

Most of the victims were pilgrims from the southern state of Chiapas who were on their way back from a trip to Mexico City to pray at the basilica of the Virgin of Guadalupe, the country's patron saint, said the head of the Civil Protection service for the state of Veracruz.

"The forensics experts at the scene report 17 bodies of passengers who were travelling in the bus, plus two people who died in the semi truck," she said.

"One person was dead on arrival at the hospital, and another who was in serious condition died."

The Catholic archdiocese of Tuxtla Gutierrez, in Chiapas, sent its condolences to the victims' loved ones in a statement.

"We deeply regret the deaths caused by this accident and share in their families' overwhelming pain," it said.

The accident occurred on a highway in a region known as the Maltrata hills, where the roads wind between peaks that rise more than 2,000 meters above sea level.

Emergency officials at the scene said one of the vehicles lost its breaks going downhill and crashed into the other, causing both to erupt in flames and leaving the bus a charred and mangled frame.

In 2006, more than 50 Evangelical Christians were killed in the same region when their bus plunged into a ravine. Authorities said that accident was also caused by faulty brakes.