1928年,伪满洲国的日本翻译伊丹英彦(仲村亨)离开中国情人丁慧(章子怡)返回日本,数年后他再回中国来到上海时,变身高级特务。而此时丁慧已成为地下抗日组织的成员,并与该组织首领谢明(冯远征)相爱。抗日组织去火车站接从外地聘请的暗杀日本情报人员山本的杀手时,误认其为小职员司徒(刘烨),混乱中,丁慧杀死司徒女友依玲(李冰冰),司徒则被伊丹英彦抓获。
对一系列遭遇无比迷惑的司徒被释放后,发誓要为依玲报仇。丁慧与伊丹英彦重逢,成为两股势力互相设局要利用的重要棋子,她本人正为误杀无辜饱受内心折磨。某个日本会所举办的舞会上,伊丹英彦告诉丁慧山本与谢明均已死,丁慧震惊想刺杀伊丹英彦之际,司徒持枪闯进舞会。。西非尚处于后殖民时代,法国政府急于想从非洲大陆抽身。虽然士兵仓皇撤退,但是他们并没有放过玛利亚(伊莎贝尔•于佩尔 Isabelle Huppert 饰)的种植园,因为传闻叛军头目——拳击手(伊萨赫•德•班克尔 Issach De Bankole 饰)就藏身于此。战火被引到了这里,但却赶上咖啡丰收的时刻。玛利亚手下的黑人雇工为了躲避战乱,逃匿得无影无踪。而当初与玛利亚共筑非洲梦的前夫安德烈(克里斯托弗•兰伯特 Christopher Lambert 饰),早已另有新欢。安德烈娶了当地黑人女子,还生养了孩子,并准备偷偷卖掉种植园。家园危在旦夕,玛利亚赫然发现好吃懒做的独生子曼努埃尔(尼古拉斯•迪富修尔 Nicholas Duvauchelle 饰)剃了光头,骑着摩托车,叫嚷着要加入叛军。灼热的土地上,似乎只剩下玛利亚她一个人在战斗……。