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