鄧巴中尉(凱文·科斯特納飾)在南北戰爭后因戰功獲得自由選擇駐地的權利,他放棄優渥待遇,前往西部偏遠哨所塞克威克。面對蘇族印第安人的戒備與敵意,他主動接觸其文化,在解救白人少女"站立舞拳"(坦圖·卡丁諾飾)后獲得信任,被賜名"與狼共舞"。他精湛的騎術贏得部族敬重,與逐漸適應印第安生活的白人少女暗生情愫。當帕尼族入侵時,他策馬傳遞情報助蘇族獲勝,被尊為英雄。隨著西部擴張加速,聯邦軍隊逼近大草原,白人士兵以叛國罪名抓捕鄧巴并焚燒蘇族營地。被押送途中,"站立舞拳"追隨而來,二人最終在士兵默許下策馬離去。曾經自由的草原淪為白人領地,蘇族人走向被圈禁保留地的命運,鄧巴作為舊時代的見證者,在兩種文明的撕裂中永遠離開了這片改變容顏的土地。