Fund manager Seok-woo is a cynical workaholic and divorced father. His little daughter Su-an wants to spend her birthday with her mother in Busan. Seok-woo sees a video of Su-an attempting to sing “Aloha ʻOe” at her singing recital and succumbing to stage fright as a result of his absence. Overcome with guilt, he decides to indulge Su-an’s wish. They board the KTX 101 at Seoul Station, en route to Busan. Other passengers include working-class man Sang-hwa and his pregnant wife Seong-kyeong, selfish COO Yon-suk, a high school baseball team, including Yong-guk and his cheerleader girlfriend Jin-hee, elderly sisters In-gil and Jong-gil, and a homeless stowaway. As the train departs, an infected woman boards, becomes a zombie and attacks a train attendant. The infection spreads rapidly throughout the train.
The group escapes to another car and locks the doors. Reports make it known that an epidemic is spreading across the country. After the train stops at Daejeon Station, the surviving passengers find the city overrun by zombies and hastily retreat back to the train, splitting up into different train cars in the chaos. The military establishes a quarantine zone near Busan, and the conductor heads the train there. Seok-woo, Sang-hwa and Yong-guk – who have become separated from their loved ones in a different car – fight their way to them through the zombies. Once regrouped, they struggle through the horde to the front car, where the rest of the passengers are sheltered. At Yon-suk’s instigation, the passengers prevent the survivors from entering, fearing that they are infected. Sang-hwa sacrifices himself to give the others time to enter the car by force. Yon-suk and the passengers demand that the survivors isolate themselves in the vestibule. However, Jong-gil – disgusted at the passengers’ selfishness and despairing the loss of her sister, who has become a zombie – allows the zombies to enter and kill them all. Ironically, because the passengers had forced Seok-woo’s group to isolate, his group remains safe. Yon-suk also escapes by hiding in the bathroom.
A blocked track at East Daegu train station forces the survivors to stop and search for another train. Yon-suk pushes Jin-hee to the zombies to save himself and she is bitten. Heartbroken, Yong-guk stays with her until she turns and kills him. Meanwhile, a flaming locomotive derails and the survivors are trapped under a train full of zombies. As the zombies drop by breaking the windows, the homeless man sacrifices himself so that Seok-woo has time to save Su-an and Seong-kyeong through a small hole under the derailed train. After fighting off the zombies, the three board a working locomotive and encounter Yon-suk, who is on the verge of turning into a zombie. Seok-woo manages to throw him off the train, but is bitten in the process. He teaches Seong-kyeong how to operate the train, and says goodbye to his sobbing daughter, throwing himself off the train before he turns. Due to another train blockage, Su-an and Seong-kyeong stop at a tunnel. They continue following the tracks on foot. Snipers stationed on the other side prepare to shoot at what they believe to be zombies. Upon hearing Su-an sobbing and singing “Aloha ʻOe” for her father, they lower their weapons, realizing the pair are human.