The bomb that was planted in a bag exploded shortly after the Awami Express, travelling from Karachi to Peshawar, pulled into platform no 2 at the Lahore railway station.
Eyewitness Asif Butt told the media that the blast occurred at 6.45 pm as a porter was removing some luggage from the train.
A railway police constable and a porter were among those killed.
The identity of the third person killed by the blast could not immediately be ascertained, officials said. Over 40 injured people were taken to nearby hospitals, a spokesman for the state-run Rescue 1122 service said. A 10-year-old boy and several women were among the wounded.
Five of the injured were in a critical condition, officials at Mayo Hospital and Sir Ganga Ram Hospital said.
Senior Superintendent Shahzad Sultan of the Railway Police told PTI that scores of people were present in a lounge for a private business train when the bomb went off. “The explosive device was planted in a bag. The blast occurred when a porter lifted the bag,” he said.
The blast was heard from several kilometres away and blew out the large windows of the lounge and several people were hit by shards of glass.
No group claimed responsibility for the blast though such attacks are usually blamed on the Pakistani Taliban.
Lahore police chief Aslam Tareen told reporters at the site of the blast: “It was an act of terrorism in a public place. We have to find out how they (terrorists) entered the railway station with the explosive device despite checks”.
Tareen said the bomb disposal squad had estimated that six to eight kilograms of explosives were used in the attack.
Muhammad Hamid, a passenger who was injured, said: “I was present near the business lounge when I heard a bang and fell unconscious. I regained consciousness when rescue officials were shifting me to Mayo Hospital”.
Footage on television showed the blast had caused extensive damage to the lounge. Benches were smashed and pieces of glass and debris lay on the floor.
People were evacuated after security forces cordoned off the railway station and adjacent areas.
All train services in Lahore were suspended following the attack and security forces searched all trains at the station, officials said.