1941年,美国海军情报局特工索姆斯(约翰•库萨克JohnCusack饰)奉命来到上海,负责调查好友康纳被暗杀的真相。他以德国先驱报驻上海记者的身份游走于社会名流的酒会。他借助同纳粹工程师穆勒太太的关系消除猜疑、获取情报。在一次赌局中,他结识了黑帮头目兰亭的夫人安娜(巩俐饰),对方与手下的神秘暗语令他感到好奇。他开始跟踪安娜,并从她那里了解到一些线索。为了调查康纳的死因,索姆斯秘密会见了康纳的线人。然而,由于日本军队在追查地下党,两人的会面被迫中断。偶然的机会,索姆斯再次与安娜重逢,并通过她的引荐认识了上海黑社会头目安东尼•兰亭(周润发饰)和日本情报处田中大佐(渡边谦饰)。在调查过程中,索姆斯逐渐发现康纳的死与一个神秘的日本女人(菊地凛子饰)有关。他不仅要探查康纳被暗杀的真相,还要阻止日本军队的阴谋。在这场充满谎言和欲望的危险冒险中,索姆斯必须小心谨慎,才能揭露真相。