1941年,美國海軍情報局特工索姆斯(約翰•庫薩克 John Cusack 飾)奉命來到上海,負責調查好友康納被暗殺的真相。他以德國先驅報駐上海記者的身份遊走於社會名流的酒會。他借助同納粹工程師穆勒太太的情人關係消除猜疑、獲取情報。在一次賭局中,他結識了黑幫頭目蘭亭的夫人安娜(鞏俐 飾),對方與手下的神秘暗語令他好奇。跟蹤未果,他隻得繼續打探。為了調查康納的死因,他秘密約見了康納的線人。然而,兩人的會面卻因為日本軍隊追查地下黨而破產。一次偶然的機會,索姆斯再次與安娜重逢,並且在她的引薦中結識了上海黑社
1839年,運送黑奴的阿米斯塔德號在大洋上遭遇暴風雨,黑奴們趁亂暴動,將船員砍殺,控制了阿米斯塔德號後試圖駛回家鄉,然而六周後,他們陰差陽錯抵達了美國,幸存下來的44名黑奴被美國軍方逮捕,並將面臨殺人罪的指控。此時,西班牙女王向美國總統要求引渡這些屬於西班牙的黑奴;兩名海軍軍官也宣稱黑奴是他們的戰利品;另有人拿出了在古巴購買這些黑奴的證明。各方爭執之際,廢奴會的領袖之一、同時也是船公司負責人的喬德森(摩根·弗裡曼 Morgan Freeman 飾)與友人塔培安雇傭了律師羅傑,希望證明這些黑奴來自非洲,