Karachi to Lahore express train struck the vehicle unmanned railway crossing in the district of Sheikhupura of Punjab province, on Friday, police said.
Twenty people travelling in the bus, including seven women, were killed and eight others were injured, officers said.
None of the train passengers were believed to have been injured.
The pilgrims Sikhs were thought to be of the Pakistani city of Peshawar and back home from a visit to the shrine of Nankana Sahib in Sheikhupura, Punjab.
All the wounded were transported to a hospital in the city of Lahore, with two in critical condition, police chief of the district of Ghazi Salahuddin said.
The Sikhs have several shrines of their religious leaders in Pakistan.
Train accidents are frequent in the country, mainly due to a lack of enforcement of safety standards, a poorly maintained railway system, and the negligence of the drivers.
In February, a train crashed into a bus carrying passengers to a drone railway crossing in the district of Rohri in the south of Pakistan, killing 19 people and injuring 28 others.
Last November, a fire caused by a cooking gas stove to be swept along by a train in Punjab province, killing 74 people.