1928年,伪满洲国的日本翻译伊丹英彦(仲村亨)分开中国恋人丁慧(章子怡)返回日本,数年后他再回中国来到上海时,变身高级特务。而此时丁慧已成为地下抗日构造的成员,并与该构造首领谢明(冯远征)相爱。抗日构造去火车站接从外埠礼聘的暗算日本谍报人员山本的杀手时,误认其为小人员司徒(刘烨),紊乱中,丁慧杀死司徒女友依玲(李冰冰),司徒则被伊丹英彦抓获。 对一系列遭遇无比疑惑的司徒被释放后,立誓要为依玲报仇。丁慧与伊丹英彦重逢,成为两股权势相互设局要行使的重要棋子,她本人正为误杀无辜饱受心里熬煎。某个日本会所举办的舞会上,伊丹英彦告知丁慧山本与谢明均已死,丁慧震惊想刺杀伊丹英彦之际,司徒持枪闯进舞会。