1941年,美国海军情报局特工索姆斯(约翰·库萨克,约翰·库萨克)奉命来沪调查其好友康纳遇刺的真相。 作为《德国先驱报》驻上海记者,他游走于名流的酒会之间。 他利用情人与纳粹工程师穆勒夫人的关系来消除怀疑,获取信息。 在一次赌博游戏中,他认识了团伙头目兰婷的妻子安娜(巩俐饰),对方及其下属的神秘暗语让他很好奇。 追踪失败,他不得不继续寻找。 为了调查康纳的死因,他秘密会见了康纳的线人。 但两人的会面因为日军追查地下党而破产。 一次偶然的机会,索姆斯再次认识了安娜,并通过她的介绍认识了上海黑社会的头目安东尼·兰亭(周润发饰)和日本情报部门的田中大辅(渡边谦饰)。 在调查过程中,索姆斯逐渐发现康纳的死与一个神秘的日本女人(菊地凛子饰)有关…