1945年夏,国军将军雷义方(黄晓明饰)在平原战场率兵大败日军。国军通讯兵佟大庆(佟大为饰)俘获了台湾籍日军军医严泽坤(金城武饰)。日军投降之后,三人各行其道。雷义方回到了上海,认识了豪门千金周蕴芬(宋慧乔饰)。两人一见钟情,不久成婚。但随即,内战爆发了。
金城武与长泽雅美的搭戏
严泽坤在抗战后回到台湾,却发现曾经的恋人日本女孩雅子(长泽雅美饰)已经被遣返回日本。佟大庆则爱上了白天做护士照顾伤兵,晚上在街头招客的妓女于真(章子怡饰),两人原本各取所需照了张“结婚照”,没想到真的成了一对苦恋的情侣。