1941年,美国海军情报局特工索姆斯(约翰•库萨克JohnCusack饰)奉命离开上海,担任调查好友康纳被暗杀的真相。他以德国先驱报驻上海记者的身份游走于社会名流的酒会。他借助同纳粹工程师穆勒太太的情人关系消弭猜疑、获取情报。在一次赌局中,他结识了黑帮头目兰亭的夫人安娜(巩俐饰),对方与手下的奥秘暗语令他猎奇。跟踪未果,他只得继续探听。为了调查康纳的死因,他秘密约见了康纳的线人。但是,两人的会面却由于日本军队清查地下党而破产。一次偶然的时机,索姆斯再次与安娜重逢,并且在她的推荐中结识了上海黑社会头目安东尼•兰亭(周润发饰)及日本情报处田中大佐(渡边谦饰)。在调查中,索姆斯渐渐发现康纳的死跟一个奥秘的日本女人(菊地凛子饰)有关……