故事描述惡霸地主因遭墨西哥土匪搗亂,于是高價聘請一槍手對付土匪,但槍手逐漸認清惡霸的真實兇殘面目后,遂對他大為反感,最后亦和惡霸對抗。1900 年代初的新墨西哥州錫諾拉小鎮,心懷不滿的前賞金獵人喬·基德(克林特·伊斯特伍德飾)因在印第安人土地上狩獵并擾亂治安而入獄。墨西哥匪徒/革命者路易斯·查馬(約翰·撒克遜飾)組織了一場農民 起義,反對當地地主將窮人趕出祖傳的土地,并襲擊了法院。富有的地主弗蘭克·哈倫(羅伯特·杜瓦爾)組建了一個小隊)捕獲查馬。基德被邀請加入但他拒絕了。哈倫堅持不懈,基德得知查馬的樂隊襲擊了他的牧場并襲擊了那里的一名工人后,態度軟化了。這支隊伍由眾多殘忍的人組成,其中一些人配備了新型步槍,其射程比以前的類型大得多。這支隊伍沖進查馬藏身處附近的一個村莊,用槍逼迫村民進入教堂。他們威脅要殺死五名人質,除非查馬投降。哈倫不再信任基德,并把他也扔進了教堂,以阻止他幫助海倫。哈倫不知道的是,海倫也是查瑪的情人以及其他墨西哥人質。基德大膽越獄。他找到查馬和他的同伙并強迫他們遵守他的意愿,從而拯救了人質。他讓哈倫和小隊知道他會將查馬交給警長米切爾(格雷戈里·沃爾科特)) 城里。隊伍向前攔截一列返回錫諾拉的火車,同時一名孤獨的槍手與基德和他的隊伍交戰;這些都被鎖定了,因為明戈是哈倫隊伍中最優秀的射手,他擁有一把高威力的步槍,正在從上面的巖石上射擊。然而,當基德成功獲得其中一把后,他在逃跑過程中組裝了槍并成功殺死了明戈。當基德和被俘的查瑪到達鎮上時,他們發現哈倫已經和其他幸存者一起在那里,計劃將他們全部殺死。基德打算實施他的計劃。為了前往監獄,基德駕駛蒸汽火車穿過鎮上的酒吧。基德和哈倫的手下發生了槍戰。基德戰勝了其他人,并躲在法官的椅子上,設法在法院殺死了哈蘭。查馬隨后向米切爾投降。基德打了治安官一拳(因為治安官在逮捕偷獵期間打了他一拳),收拾好東西,和海倫一起離開了小鎮。