南北战争中的英雄邓巴中尉为了寻找一种新的生活方式,骑着战马西斯科来到了神奇的西部。大草原的壮美深深吸引了邓巴,他决定在无人的哨所中住下。
邓巴独自过着平静而单调的生活,这无边无垠的苍天原野仿佛就是他的天堂。他发现总有一只狼在周围出没,但它好像并无恶意,而是好奇地关注着这里的一切。由于它的两腿前端呈乳白色,好像套了一双袜子,于是,邓巴便称它为“双袜”。在这荒野上,双袜和西斯科是邓巴最忠实的伙伴。
有一天,邓巴正在河里惬意地游泳,被一个印第安人——苏族人的巫医“踢鸟”发现了。回到苏族的营地后,踢鸟向部落首领“十熊”报告了看到白人的情形。部落里对于如何对付这位白人反应不一,踢鸟认为此人能单独在此地立足必有某种法术,或许可以通过他与白人达成约定,而勇猛的武士“风中散发”则不愿容忍在自己的土地上看到白人的出现。
邓巴决定主动去找苏族人。在途中,他救起了一位想要自杀的苏族女人“挥拳而立”,她原先也是白人,但自小就失去了亲人并被苏族人收养。在把“bǎ挥拳而立”交还给苏族人之后,邓巴骑马离去。
邓巴的来访极大地震动了苏族人,他们一致同意去回访邓巴。就这样,双方开始了缓慢而友好的接触。渐渐地,邓巴成了苏族人的朋友,他还有了一个印第安名字,叫做“与狼共舞”。与此同时,邓巴与“挥拳而立”之间也产生了真挚的感情。
在凶残的帕尼族人来袭时,邓巴倾其全力,将哨所里的枪支弹药分给了苏族人,帮助他们战胜了仇敌。邓巴再次成为苏族人的英雄,所有的苏族人都很敬慕邓巴,他们祝福邓巴与“挥拳而立”的相爱和结合。邓巴深切地认识到了印第安人的朴实、善良和友好,他决定同苏族人一起生活。然而,就在邓巴想要去哨所取回日记本,永远地住到印第安人中间时,他发现那里已经驻扎了一队白人士兵。对方看到印第安人装束的邓巴就开枪射击,爱马西斯科死了,邓巴也成了囚犯。
邓巴为印第安人的辩护招来了一再的虐待和毒打,他们认定邓巴是叛徒,并派一队士兵押送邓巴回海斯要塞。苏族人发现了这一情况,他们消灭了押送队,救出了邓巴,双袜也受了伤。
严冬来临了,苏族人在深谷中住了下来。为了不连累苏族朋友,邓巴谢绝了挽留,带着妻子离开了苏族人的村落。18年后,苏族人被迫与政府签订了协议,放弃了他们世代相传的土地。