故事发生在19世纪的英格兰,青年奥斯卡(拉尔夫·费因斯 Ralph Fiennes 饰)是一位传教士,心怀远大理想的他踏上了前往澳洲内陆的旅途,准备在那里展开自己的事业,让更多的人承蒙主的恩赐。露辛迪亚(凯特·布兰切特 Cate Blanchett 饰)从小在富裕的家庭长大,衣食无忧的生活让她保留了美好的梦想和纯洁的心灵,在继承了父亲的玻璃厂之后,她决心将解放女性自立自强的态度发扬光大。 在漂泊在大海上的一艘轮船上,就是这样相似又迥异的两人,他们相遇了。好强又好胜的两人打了一个赌,赌局里奥斯卡必须建造一幢玻璃教堂并将它运往内陆山区,赌注是露辛迪亚的全部财产。而正是这个大胆又疯狂的赌局彻底改变了两人的命运。。这是发生在北京冬天的一段感人故事:出生在山西农村的栓子,是个从来没有见过自己亲生父母的孩子,据四姨的了解,他的父亲是一个曾在山西插队的北京知青,为了寻找自己的父亲,栓子在四姨的陪同下来到当年在山西插过队的毕和家中,栓子的突然到来令大律师毕和百感交集,而毕和的妻子姚冰律师却对此事产生怀疑。
在姚冰的追查下,热心的冯大姐将当年的知青一一分析过来,最后论定:一起插队的“小特务”嫌疑最大。众知青对“小特务”兴师问罪,但“小特务”却用事实证明了自己的清白,并将罪名推给了当年的知青、现在的工业局局长郑德宁,郑德宁有口难辩,郑德宁的女儿郑鹿却对栓子产生了兴趣。
在众知青的资助下,“小特务”开了一家影楼自食其力。一个偶然的机会,为冯大姐翻拍照片的朱杏在一张老照片中找到了线索,在片警小曹的帮助下,栓子的身世之迷终于有了答案,不料却揭开了一个更令人吃惊的秘密:郑鹿跟郑德宁夫妇并没有血缘关系。
在鹿儿的追问和冯大姐等人的调查之下,疑团渐渐解开:姚冰才是鹿儿的亲生母亲,而郑鹿的父亲居然是一个因冤假错案而在狱中度过了十七个春秋的农民——姜大车。毕和与鹿儿一样无法接受这个残酷的事实。郑德宁夫妇更为即将失去女儿而痛不欲生。历史与两代人开了一个严酷的玩笑,两个家庭面临着艰难的选择。
栓子和朱杏自作主张,将鹿儿的亲生父亲姜大车请到了北京,面对这个为了别人的幸福牺牲自己十七年青春的男人,所有的怨恨和私念都显得无地自容。姜大车最终还是默默地离开了大家。在真情的感化之下,经受了痛苦和磨难的人们最终达成了谅解,在冬天的严寒中看到了希望。。