1928年,伪满洲国的日本翻译伊丹英彦(仲村亨)离开中国情人丁慧(章子怡)返回日本,数年后他再回中国来到上海时,变身高级特务。而此时丁慧已成为地下抗日组织的成员,并与该组织首领谢明(冯远征)相爱。抗日组织去火车站接从外地聘请的暗杀日本情报人员山本的杀手时,误认其为小职员司徒(刘烨),混乱中,丁慧杀死司徒女友依玲(李冰冰),司徒则被伊丹英彦抓获。
对一系列遭遇无比迷惑的司徒被释放后,发誓要为依玲报仇。丁慧与伊丹英彦重逢,成为两股势力互相设局要利用的重要棋子,她本人正为误杀无辜饱受内心折磨。某个日本会所举办的舞会上,伊丹英彦告诉丁慧山本与谢明均已死,丁慧震惊想刺杀伊丹英彦之际,司徒持枪闯进舞会。。因为目睹了一场谋杀案,瑞秋和儿子山姆的平静生活被彻底打破。接到报案的约翰警长匆匆赶来,没想到被指认的凶手不是别人,正是同为警探的迈克菲。约翰将这一消息报告给了上司保罗,没想到保罗和迈克菲之间有着邪恶而非法的关联。
得知真相的约翰遭到了迈克菲的诛杀,身受重伤的他被瑞秋带到了阿门部落疗养。在疗养的日子里,约翰和瑞秋之间产生了奇妙的化学反应,同时,约翰也逐渐习惯了在阿门部落里的生活。好景不长,保罗最终发现了约翰的行踪,为了守住自己肮脏的秘密,他誓要将约翰置于死地。。