在孔雀镇的铁路旁边,生活着一个有着灰暗过去的男子——约翰·斯基尔帕(希里安·墨菲 Cillian Murphy 饰),他自幼在母亲的淫威下长大,由此养成了压抑自闭的性格。在母亲去世后,约翰的人格分裂,其内心生出象征母性的女子埃玛。约翰就这样在男女两个身份间转换,过着平静而扭曲的隐蔽生活。
某个清晨,灾祸突然降临。一个火车头脱轨闯入约翰家的院子,正在晾晒衣物的埃玛受到惊吓,并且出现在小镇人民的面前。人们对此议论纷纷,约翰则希望尽快将火车头清除院子,然而政客们却打算以此作为政治斗争的砝码。面对种种混乱的局面,约翰和埃玛的心中焦虑重重,他们的矛盾也渐次激化……。1998年11月11日,汤有亮(刘青云 饰)一家游玩途中遭遇严重车祸,汤当场身亡,妻子程希文(林熙蕾 饰)和一双儿女侥幸逃生,只是女儿汤乐儿双眼从此失明。转眼十年过去,时间并未治愈汤氏一家心中的创伤,他们久久沉浸在失去丈夫和父亲的悲痛之中。乐儿(阎青 饰)不愿母亲继续折磨自己,她尝试着将一家人的经历写成小说,而书中的情节和现实截然相反。在小说里,乐儿和母亲、弟弟死于车祸,父亲则活了下来,成为一个由菲佣照顾起居的盲人。父亲相信鬼魂的存在,时刻期盼与妻儿重逢。死去的乐儿在另一个世界当上了小孟婆,她利用手中的职权让母亲和弟弟重新回到父亲身边。汤和妻儿心照不宣地享受着失而复得的幸福生活…… 乐儿的小说让母亲的脸上绽放出久违的笑容,一家人的生活终于步上正轨,然而一场残酷的灾难不期而至……。