1928年,伪满洲国的日本翻译伊丹英彦(仲村亨)离开中国情人丁慧(章子怡)返回日本,数年后他再回中国来到上海时,变身高级特务。而此时丁慧已成为地下抗日组织的成员,并与该组织首领谢明(冯远征)相爱。抗日组织去火车站接从外地聘请的暗杀日本情报人员山本的杀手时,误认其为小职员司徒(刘烨),混乱中,丁慧杀死司徒女友依玲(李冰冰),司徒则被伊丹英彦抓获。
对一系列遭遇无比迷惑的司徒被释放后,发誓要为依玲报仇。丁慧与伊丹英彦重逢,成为两股势力互相设局要利用的重要棋子,她本人正为误杀无辜饱受内心折磨。某个日本会所举办的舞会上,伊丹英彦告诉丁慧山本与谢明均已死,丁慧震惊想刺杀伊丹英彦之际,司徒持枪闯进舞会。。年轻美丽的芭蕾舞演员玛蒂尔达·克谢辛斯卡娅在一次表演中面对突发状况处变不惊的态度以及她那迷人的眼神和曼妙的舞姿,引起王储尼古拉的注意。同样对玛蒂尔达心生爱慕的还有王室宗亲安德烈公爵以及妒火中烧不惜袭击王储的狂热分子沃伧佐夫。虽然已有婚约在身,但尼古拉还是不可救药地陷入情网。沙皇亚历山大三世逝世,尼古拉不得不履行婚约,以便加冕为王。得知尼古拉婚讯的玛蒂尔达伤心不已,唯愿在加冕典礼前的舞会上献舞,可这唯一的心愿还遭到保卫王室安全的长官弗拉索夫的阻挠。玛蒂尔达心有不甘,还是冲上舞台。她的献舞并不完美,但却坚定了尼古拉与她厮守的决心。正当玛蒂尔达满心期盼地等待尼古拉的到来时,挣脱囚禁的沃伧佐夫突然出现将其掳走,而欲将她置于死地的弗拉索夫更是痛下杀手。以为爱人已逝的尼古拉心灰意冷,决定与德国大公爵之女阿列克斯完成加冕典礼。这时,幸免于难的玛蒂尔达突然出现,然而一切都无法挽回,有情人难成眷属。。