陳真(甄子丹飾)當年為報日本人殺師(霍元甲)之仇,獨闖虹口道場,擊殺壹眾日本武術高手力石剛,轟動全上海後,便人間蒸發,不知所蹤。隨後七年中陳真在法國以華工身份參與了第壹次世界大戰並且幸存。之後,陳真化名齊天元(齊天元是在戰爭中不幸死去的壹名華工,他曾教陳真彈鋼琴)從法國回到上海,以年輕實業家身份潛入當地娛樂業龍頭“卡薩布蘭卡夜總會”,在壹次夜總會中與日本軍官的沖突之後,陳真結識了劉爺(黃秋生飾)。
劉爺被譽為上海灘內最有勢力的人物,也是卡薩布蘭卡的大老板。表面上是個面面俱圓的大亨,實際上始終以民族利益為重,心底裏也不願見到日軍侵略得逞,因此他暗中反對日本對華侵略行動,看到陳真的出現,劉爺為他帶來最好的待遇。甚至將情人、歌廳舞女KIKI(舒淇飾)讓給了陳真。KIKI原名山口由美,是日軍的壹名臥底,軍銜上尉,她長期埋伏於夜總會套取秘密情報,但慢慢地愛上了陳真。
陳真隸屬於壹個地下反日組織,組織主要由報社成員、學生,以及部分返華華工組成,他們與以巡捕黃昊龍(黃渤飾)為首的愛國人士之間有合作。在組織的支持下,陳真與以力石猛(木幡龍飾)為首的日軍暗殺軍團進行了壹場爭奪愛國人士性命的壹場鬥爭,在鬥爭過程中,死去的不僅僅是上百個手無寸鐵的愛國人士,甚至還有陳真在歐洲戰場出生入死的兄弟。在經歷了壹系列挫折之後,陳真及組織決定直搗黃龍,摧毀暗殺軍團的大本營。由於不小心,陳真被暗殺軍團二把手秘密綁走,嚴刑拷問。與此同時,組織基本摧毀了暗殺軍團的大本營。暗殺軍團憤怒,在第二天就殺死了參與摧毀計劃的華工,並侮辱了真齊天元的妹妹。
力石猛(力石剛之子)為了親手報殺父之仇,放走了被拷打的全身是傷的陳真(之前暗殺軍團通過KIKI了解了陳真是借齊天元之名行事),讓其回去養傷。並且由山口由美(即KIKI)以日本軍官身份要求陳真赴虹口道場決鬥,否則就在上海大開殺戒。陳真在傷口剛剛有所好轉之時只身赴道場,在虹口道場,他親眼看著KIKI被力石猛所殺,又看到了昔日戰友大剛被拷打致死的屍體,再回憶起被侮辱的齊天元的妹妹,陳真怒火攻心,大鬧道場,雖然他打倒了所有力石猛所訓練的日本武士,但是由於身上有傷,白色的衣服也被血液浸染。力石猛喝退了他的部下,與陳真決鬥。在對決中,陳真曾占了長時間的下風,甚至被打倒在地。但頑強的意誌和國仇家恨讓他再次站了起來,折斷對手四肢筋骨,最終取勝 。