邓巴中尉(凯文•科斯特纳 Kevin Costner 饰)在南北战争中立了大功,政府为了褒奖他,给了他任意选择驻地的特权。邓巴渴望着一种全新的生活,于是选择了遥远偏僻的西部哨所塞克威克。这里住着大量的印第安苏族人。
一开始苏族人把他的到来有着抗拒,当邓巴主动接近和了解他们的生活,并搭救了一个从小在苏族长大的白人少女后,族人和他之间的关系开始回暖。他得到了一个印第安名字:与狼共舞。邓巴的骑术让族人惊叹,他的善良被大家称赞,和白人少女也日久生情。一次对抗外族入侵的战争中,邓巴更是被封为了苏族人的民族英雄
阿尔文(汤姆·赫兰德 Tom Holland 饰)出生在一个非常虔诚的基督教家庭之中,父亲威拉德(比尔·斯卡斯加德 Bill Skarsgård 饰)虽然沉默和严厉,但非常的爱自己的孩子,从阿尔文很小的时候起,父亲就教导他要将内心的一切想法都坦露给耶稣。
虽然威拉德一生敬主,可是主却并没有善待他。威拉德的妻子患上了不治之症,无论威拉德怎样的祈祷,她最终还是撒手人寰,信仰破灭的威拉德选择了自杀,阿尔文沦为孤儿,被奶奶一家人收留了。在奶奶家,阿尔文遇见了同样是孤儿的雷诺拉(伊莱扎·斯坎伦 Eliza