1941年冬,上海。军统的肖正国(张若昀饰)和周海潮、江元宝三人到上海执行秘密任务,一是要刺杀一位日本高官,二是与代号“雄狮”的特工接头,来执行一项绝密计划。为了不暴露行踪,他们甚至连旅馆都没有去,而是选择一家电影看通宵电影。
在去接头的路上,肖正国一直有一种不详的预感,为了谨慎起见,他和周海潮兵分两路行动,肖正国和江元宝还没到接头点就被日军包围了,逃跑中肖正国中了一枪后逃回了电影院,江元宝刚出门口就被团团包围。周海潮比较幸运,他兜转了一圈又回到了影院,在这里,他看到肖正国腿部中弹伤得不轻。周海潮趁着肖正国没有发现自己,从背后给了肖正国一枪,将肖正国击倒在地,他在匆忙离开的时候怀表落在了现场。周海潮逃走之后日军赶到了电影院,把还有呼吸的肖正国送往医院抢救。
日本尚公馆特务课长荒木惟,对抓来的江元宝严刑逼供,江元宝根本扛不住,坚持了一分零七秒就认怂了,把他知道的都说了出来。荒木惟带着手下千田英子去参加宴会,今晚有不少日本军政界的高官,其中就有麻田将军,他和舞厅的老板娘唐曼晴交好。陈山是上海街头小混混,平时和两个弟兄靠偷摸发点小财过日子,今天他是想替别人来捉奸的,找到舞女偷拿的十八根金条,他从中可以赚取两根金条。他混进了舞会现场,正巧被荒木惟看见,他震惊此人竟然和前不久抓到的肖正国非常相似。
陈山溜进房间等待着,正巧碰到一个叫横山的日本人想要非礼舞厅的黄莺小姐。陈山虽然是地痞混混,但嫉恶如仇还有中国人的血性,忍无可忍之下冲上去救了黄莺和横山打了起来,惊动了荒木惟等人。荒木惟带着手下抓了陈山,本来麻田将军不打算放过陈山的,荒木惟对他的身份产生了怀疑,有意想要留他一条命。
荒木惟让陈山讲述究竟发生了什么,他会可以考虑是否可以放过他。陈山把发生的事儿都说了,还分析了黄莺这个舞女不对劲,种种迹象都表明她今晚要跟其它男人私奔,回房间是为了带着金条离开。一开始荒木惟等人并不相信陈山的措辞,但陈山找到了藏在房间鱼缸里的金条,荒木惟趁机向麻田将军表示陈山涉及到前几天的一个抓捕行动,把陈山带走了。
荒木惟让手下千田英子仔细的查了陈山的资料,跟肖正国完全没有关系,他就是上海本地一个小混混,哥哥陈河在清华大学念书,还有一个眼睛失明的妹妹陈夏。荒木惟想到了一个计划,让千田英子找到了陈夏,把她骗到了尚公馆。陈山被荒木惟安排人看管了起来,苏醒的陈山费了半天功夫才逃了出去,随后,他又被关进了一所被封闭的房子,陈山依旧靠着聪明引燃火灾后逃了出去,他刚松了一口气,在逃到一处电话亭时,里面的电话响了不停。陈山犹豫了一下还是接听了电话,结果电话竟然是荒木惟打来的,原来刚才发生的一切都是荒木惟精心安排的,他的目的就是要考验陈山是否具备特工的潜质。
陈山对于荒木惟安排的这一切很是反感,质问他究竟要做什么,荒木惟告诉陈山,如果他还想见到陈夏,就赶紧到尚公馆来,他只有半个小时的时间。陈山得知陈夏被荒木惟的手下带走后,心急如焚,一路狂奔赶去尚公馆,半路上差点被车撞到。陈山到了尚公馆后,一进门就看见荒木惟拿枪指着陈夏,随后荒木惟支走了陈夏,用枪指着陈山,向他发问,刚才路上那辆差点撞到他的车,车牌号是多少,路上的杂货铺叫什么名字,陈山努力想起后都一一答对了,可问他跨过了多少台阶让陈山实在无法回答。
陈山猜测出荒木惟打算轰炸重庆的时候,荒木惟突然向陈山的脖子上开了一枪,然后让医生抓紧抢救陈山。陈山醒来后,意识到自己对荒木惟有利用价值,但是不明白荒木惟到底想要自己做什么,荒木惟告诉他,因为他肖正国长得很像,如果他想要陈夏平安无事,就必须变成肖正国。陈山觉得这是一个不可能完成的任务,千田英子把肖正国的情况向陈山进行了描述,特意强调在重庆第二处,除了一个叫李伯钧的昔日战友,几乎没有人熟悉肖正国。
荒木惟开始对陈山进行特训,让他记住关于肖正国的一切,记住认识肖正国的所有人的身份信息,因为肖正国是左撇子,他要把陈山的惯用手改为左手,除此之外,陈山还要学习摩斯电码、交谊舞等课程,荒木惟要让陈山彻底成为肖正国。在一次格斗术的测试中,陈山将五个日本士兵打倒在地,荒木惟又叫了五个人来和陈山对打,体力不支的陈山绝望地夺了一支枪后打死了一名日本兵,荒木惟不怒反喜,称赞陈山终于学会了杀人,而第一次杀人的陈山却承受着巨大的心理压力。
为了检验特训成果,荒木惟特意叫来了江元宝,江元宝见到陈山后懵了,虽然陈山的声音有些变化,但听到陈山的解释后,他对陈山没有任何怀疑。荒木惟叮嘱陈山不能大意,到了重庆后他根本没有犯错的机会,他要求陈山务必要拿到绝密的兵工厂分布图。江元宝交代的情报里提到,肖正国需要单线联系一名潜伏在特务科代号名为雄狮的卧底,而现在却没有人知道雄狮的真实身份,只有让陈山去和雄狮接头启动计划,才能让雄狮暴露身份,这次接头,对陈山的最后一次考验。
陈山来到接头的咖啡馆里,准备和雄狮接头,荒木惟则在对面的楼上埋伏着。陈山和雄狮接头后,坐在荒木惟安装好窃听器的桌子上。出乎荒木惟意料的是,雄狮竟然和肖正国认识,在两人交谈时,千田英子已经开始着手调查雄狮的底细。肖正国开始给雄狮布置刺杀任务,告诉雄狮明年惊蛰前楠木会来到上海,让雄狮调查楠木将军届时的出行计划和详细地址,再将情报秘密传回重庆。
雄狮听完任务,期待着让肖正国回答上次二人分别时,雄狮向肖正国提出的问题,陈山想借口离开,雄狮却一再追问,陈山重新镇定下来后对雄狮一番劝慰,雄狮却怀疑起肖正国的身份,因为以前的肖正国绝对不会对自己这么温柔。陈山赶紧解释,雄狮没有继续质问陈山,转而说起当初肖正国给自己买过烟,并提出想让陈山再给自己买一包,荒木惟担心陈山无法过关,吩咐手下只要陈山一旦露馅,就将雄狮逮捕。没想到陈山竟然猜对了香烟的牌子,虽然陈山顺利过关,但是荒木惟却对陈山不满意。
荒木惟安排陈山第二天就去重庆,陈山要求临走前去见一眼自己的父亲,荒木惟却表示拒绝,陈山闹起了脾气,称不让自己见父亲就不去重庆,荒木惟只好同意让他回去一趟。但是陈山只能远远地看着自己的父亲,不能上前说话,在陈山和千田英子返回的路上,他被一个叫刘芬芳的人叫住,刘芬芳因为曾经买卖枪支的事与陈山进行纠缠,千田英子把刘芬芳打倒在地,并开枪吓唬他,陈山趁机让刘芬芳在明年惊蛰前替自己送一封信。
陈山临去重庆前,荒木惟提醒陈山,他最大的敌人就是肖正国的妻子余小晚,只要陈山稍不注意,就有可能会被余小晚识破身份,让他二十四小时保持警惕。
陈山到达重庆后,想起荒木惟让他务必在上午十点之前找到老巴黎理发店的裘师傅,由他给自己下达第一个任务,如果他没能准时找到裘师傅,那么陈夏就可能失去手指。陈山刚准备前往老巴黎理发店,就被第二处的沈平安叫住,他是专程来接肖正国的。沈平安没有把陈山带回第二处,而是把他带到一个偏僻的仓库,费副处长没有出现,而是审讯科的魏长铭等候着陈山,质疑他投敌叛国。
陈山与对方扭打起来,但寡不敌众而被绑了起来,魏长铭质问他是怎么从日本人手里逃脱出来的,陈山按照荒木惟提供给自己的资料向魏长铭解释,但魏长铭却不相信陈山,陈山趁其不备,将魏长铭打倒在地,抢了汽车就直奔老巴黎理发店。陈山找到裘师傅时,才发现裘师傅就是荒木惟,这时他才意识到这一切都是荒木惟考验自己而安排的。
陈山以肖正国的身份来到了军统第二处,进门就被李伯钧叫住了,李伯钧对陈山的突然出现十分诧异,并因为陈山的举动而对他起了疑心,陈山尽管随机应变,却还是让李伯钧心里很不舒服。陈山来到军统二处,几乎所有人都很惊讶。陈山来到费正鹏的办公室,费正鹏看到他后很是激动,两人一番攀谈后,费正鹏叮嘱陈山去找关永山报道,并让他主动提出接受防谍科的问话,显得对肖正国颇为关心。
小董告诉关永山肖正国回来的消息,关永山马上把任命周海潮为科长的命令压下了,本想找周海潮问问情况,不料想周海潮竟然请假了,这让关永山对他十分不满。关永山对肖正国也颇有怀疑,吩咐防谍科要好好调查一下肖正国。费正鹏为了以防万一,安排人手去上海军统暗中调查肖正国在上海脱身的经历。陈山借口去见余小晚,开始在街上闲逛,尽快熟悉重庆街头的地形,随后他来到宽仁医院找余小晚,看到余小晚正在抢救病人,余小晚让陈山等着自己。陈山有点饿了,便出了医院吃点东西,却发现门口的状况有些不对劲,没过多久医院门口就响起了枪声,随后他发现有一个人正在跟踪一个女人,而那个女人身手敏捷,转身一脚便把跟踪的人打晕而轻松地逃脱了。
周海潮到宽仁医院接余小晚去吃饭,陈山回到医院后发现余小晚已经离开了,他只好独自加了家。周海潮和余小晚在俱乐部里一边跳舞一边聊天,周海潮对余小晚颇有兴趣,对余小晚说着各种甜言蜜语。周海潮看出余小晚心里根本没有肖正国,便想让余小晚改嫁给自己,但余小晚似乎对周海潮也没什么兴趣。周海潮和余小晚醉醺醺地往余小晚家里走,来到了门口时,周海潮正在和余小晚吹牛,陈山突然出现呵斥了他,这让陈山非常惊讶,他看到陈山脖子上的枪伤,想起了自己当初开的那一枪,赶紧向陈山解释自己喝多了,让陈山不要在意。
陈山教训了周海潮几句后回到家中,余小晚提醒他别忘了当初两人定下的规矩,开门是夫妻,关门就各过各的。余小晚的几个牌友找上门来,余小晚将她们打发走后准备睡觉,陈山刚在余小晚床上坐下就被余小晚赶走了,陈山扬言以后要灭了余小晚的火药味,余小晚发现出陈山的异常,因为以前的肖正国根本不会这么硬气。次日,周海潮为了讨好关永山,特意给他送了一支邵友兰亲制的紫砂壶,关永山非常高兴,但是当周海潮问起自己的任职命令时,关永山却说既然肖正国回来了,那个职位就理应是肖正国的。
陈山在找费正鹏的路上遇上了张离,两人寒暄几句后,陈山发现张离的大衣上破了一个洞,他回想起那天遇到的神秘女人,几乎可以肯定,张离就是那个神秘女人。李伯钧让陈山小心周海潮,还说当时余顺年告诉过肖正国怎么治住余小晚,陈山正愁不知道该怎么回答李伯钧时,费正鹏的电话替他解了围,但李伯钧还是觉得有些奇怪。陈山回到家里,余小晚正和几个朋友准备打牌,还让陈山去杀鱼和削水果,张离到厨房帮忙,张离对陈山也起了疑心,在陈山送张离回去的路上,张离试探陈山,说以前肖正国管自己叫离姐,陈山不由得有些愣神。
陈山送完张离后回家,二人谈到张离,余小晚有些疑惑陈山怎么也会叫她为离姐,陈山回忆起张离说的话,马上意识到自己中了张离的圈套,他开始担心张离会不会告发自己而变得非常焦虑。第二天,陈山若无其事地走进军统大楼,看到一切正常时才知道自己没有被告发。陈山看见张离出了门便偷偷地跟了上去,没跟多久,他就被张离发现了,但张离并没有戳破他,而陈山则怀疑张离就是共产党。
费正鹏让陈山去秘密处决共党马向山,陈山听到后有些不忍,费正鹏提醒陈山不要对任何人透露他有同情共党的倾向。陈山带人给马向山送最后一顿饭,马向山知道自己命不久矣,便向陈山求饶,并说自己不是共产党,他还交代道自己的表弟才是共产党,他们在腊月十七要有一个行动。陈山把情况向费正鹏进行了汇报,提到共党要在腊月十七要通过联络员老邓在心心咖啡馆向潜伏在军统的共党蒲公英转交一个电台。
腊月十七当天,陈山在路过张离办公室时,听到张离约余小晚中午去心心咖啡馆,陈山由此断定,张离就是那个代号蒲公英的共产党,他不想张离就这样被抓,那么阻止张离去心心咖啡馆就是唯一的途径。陈山马上打电话给余小晚,让她和张离更改约定的地点,余小晚并没有怀疑,爽快地答应下来。费正鹏决定让陈山带人包围心心咖啡馆,只要陈山抓住潜伏的共党立下了功劳,那军统二处对陈山的怀疑就会减少。余小晚给费正鹏上完药后便来找张离,但张离已经提着箱子离开了,陈山来到心心咖啡馆等候,特意要了靠窗的位子暗中观察,当他看到张离出现时,便有些后悔没有直接和她摊牌,他决定阻止张离拿到装有电台的箱子。
张离进了咖啡馆后直接去了洗手间,拿到了藏在洗手间通风管道内的电台,这时,余小晚也来到心心咖啡馆。陈山在隔壁偷听了张离和余小晚的谈话,余小晚询问张离有没有感觉到肖正国和以前不一样了,以前的肖正国十分无聊,现在却变得有男人味了。张离和余小晚吃完饭后就分开了,周海潮立即带着人跟上了张离,张离也发现周海潮,正当她以为甩掉了周海潮时,周海潮却出现在了她的面前,要检查张离的箱子,张离却要求周海潮出示行动令,这时,陈山拿着行动令出现了,可是当周海潮打开箱子后,却没有里面并没有电台,只有几件衣服和书。
周海潮十分不解,其实陈山在咖啡厅里就给张离提了醒,还帮她调换了箱子,这才让张离逃过一劫。陈山接上张离后承认自己不是肖正国,并称自己先替她暂时保管电台。陈山回到家,余小晚打电话说不回家吃晚饭了,费正鹏过来找陈山,说是来给他和余小晚做晚饭。费正鹏和陈山说起往事,叮嘱他要好好珍惜余小晚,他自己当年爱慕余小晚的母亲,却阴差阳错地错过了,费正鹏提醒陈山要提防周海潮和关永山。周海潮向余小晚打听肖正国的事情,他还对余小晚贼心未死,二人跳舞跳到深夜,余小晚还把脚给崴了。费正鹏看见余小晚这么晚才回来,就叮嘱余小晚以后要多顾家,然后转身离开。陈山见余小晚的鞋跟断了,很利落地帮她把鞋修好,还警告余小晚,只要她做自己一天老婆,就不要和周海潮不清不楚。
陈山找张离一起吃饭,张离警告陈山不要得意忘形,她很不解陈山为什么要帮自己,陈山却觉得中国人帮中国人是理所应当的事情。荒木惟和陈山约定的暗号出现了,这意味着荒木惟要给陈山布置任务了,陈山心情十分复杂。