故事发生在1990年代的台湾。节目主持人丁玉梅(杨琳饰)因节目收视不佳,面临被解雇的危险。该节目重获收视率。这时,他们遇到了一个名叫王胜芳的孩子,这个孩子拥有预知未来的特殊功能,让大家看到了希望……在寻找小棋王的过程中,程灵时常被自己的回忆打断——文化大革命期间。在此期间,他跟随表弟倪斌(金世杰饰)参加了轰轰烈烈的知识青年上山下乡运动。在火车上,他们遇到了痴迷下棋的王义升(梁家辉饰)和学美术的阿诚(严昊饰)。之后,他们在农场遇到了一系列的麻烦。入狱时,幸亏倪斌用他的“家宝”——一副元代棋作为礼物,帮助他度过了难关。后来在大家的帮助下,王一升参加了一场特殊的棋王大战,结果出人意料……本片改编自著名作家阿城的同名小说。