里昂是名孤独的职业杀手,受人雇佣。一天,邻居家小姑娘马蒂尔达敲开他的房门,要求在他那里暂避杀身之祸。原来邻居家的主人是警方缉毒组的眼线,只因贪污了一小包毒品而遭恶警杀害全家的惩罚。马蒂尔达得到里昂的留救,幸免于难,并留在里昂那里。里昂教小女孩使枪,她教里昂法文,两人关系日趋亲密,相处融洽。 女孩想着去报仇,反倒被抓,里昂及时赶到,将女孩救回。混杂着哀怨情仇的正邪之战渐次升级,更大的冲突在所难免…

邓巴中尉曾经是南北战争中的英雄,因幻想破灭,远离内战,独自往未开发西部的大草原闯荡。邓巴和印第安苏族人开始了接触和交往。经过一番艰难的起步,他终于跟语言不通文化不同的印第安人建立了信任和友谊。他与苏族妇女“站立舞拳”结婚,除了肤色和长相不同,他已经完全成为了一个印第安人。后来前往当地的白人军队反而将他视为叛徒,对他暴力相向。邓巴从此以身为白人为耻,彻底投向苏族人的阵营,并坚持自己的名字叫“与狼共舞”。