1928年,偽滿洲國(guó)的日本翻譯伊丹英彥(仲村亨)離開中國(guó)情人丁慧(章子怡)返回日本,數(shù)年后他再回中國(guó)來到上海時(shí),變身高級(jí)特務(wù)。而此時(shí)丁慧已成為地下抗日組織的成員,并與該組織首領(lǐng)謝明(馮遠(yuǎn)征)相愛??谷战M織去火車站接從外地聘請(qǐng)的暗殺日本情報(bào)人員山本的殺手時(shí),誤認(rèn)其為小職員司徒(劉燁),混亂中,丁慧殺死司徒女友依玲(李冰冰),司徒則被伊丹英彥抓獲。 對(duì)一系列遭遇無比迷惑的司徒被釋放后,發(fā)誓要為依玲報(bào)仇。丁慧與伊丹英彥重逢,成為兩股勢(shì)力互相設(shè)局要利用的重要棋子,她本人正為誤殺無辜飽受內(nèi)心折磨。某個(gè)日本會(huì)所舉辦的舞會(huì)上,伊丹英彥告訴丁慧山本與謝明均已死,丁慧震驚想刺殺伊丹英彥之際,司徒持槍闖進(jìn)舞會(huì)。