故事背景设定在上海滩的三十年代。一个聪明机智的美国小伙,戈登(西恩·潘 Sean Penn 饰),远渡重洋来到中国,寻找能够发财的机会。与此同时,格格里亚(麦当娜 Madonna 饰)则是一个坚定的传教士护士,她怀揣着希望通过鸦片的神奇力量来缓解病人的痛苦。两人的命运在一次偶然的相遇中交汇,从而走到了一起。他们的目标是寻找一批失踪的鸦片,而这个任务将他们卷入与当地毒贩和黑社会的激烈斗争之中。与此同时,浪漫的爱情故事也在这个紧张的背景下展开。 传说中,上海的鸦片大王费拉第去世后,一大批鸦片被仆人吴中树偷走,下落成谜。一年后,为了帮助受伤的士兵,教会的伯恩斯和助手泰拉克小姐决定找到这批鸦片,以止痛。他们寻求了葛兰登韦西的协助。然而,韦西在找到费拉第的情妇中国娃娃后遭到了假冒警察的歹徒梅健的袭击,并遭到严刑逼问。受到打击后,韦西原本想放弃,但因与泰拉克小姐之间渐生的感情而改变主意,决定继续帮助她。
泰勒(查理•辛 Charlie Sheen 饰)是越战期间的一名美国大学生,他前往越南前线去服兵役,被分到了一个步兵部队。部队里有两个人一直对他影响颇大——伊莱亚斯(威廉•达福 Willem Dafoe 饰)和巴恩斯(汤姆•贝伦杰 Tom Berenger 饰)。他们两人对战争的看法截然不同,前者不忍残杀无辜,而后者却杀人如麻,泰勒心里非常迷惑,到底谁对战争的看法才是正确。 巴恩斯展开了一场残忍的屠杀,越南整条村落都流血成河。伊莱亚斯力劝好友不要如此残暴,却遭致二人关系的裂缝。巴恩斯更怀疑伊莱亚斯向上司打小报告,友谊变为妒恨。于是,在一次丛林战争中,他背着所有人,向伊莱亚斯扣下了扳机。 泰勒却洞察了这一切,他心里终于有了答案。