Un cazarrecompensas (Clint Eastwood), apodado Joe, se dirige a San Miguel, un pueblo en la frontera de México y los Estados Unidos. En este pueblo, dos familias, los Rojo y los Baxter, se disputan el control del pueblo. Los Rojo son tres hermanos: Ramón (Gian Maria Volonté), Esteban (Sieghardt Rupp) y Miguel Benito (Antonio Prieto Puerto), y se dedican al tráfico de alcohol. Mientras que el matrimonio Baxter: Consuelo (Margarita Lozano) y el sheriff John (Wolfgang Lukschy), se dedica a la venta de armas y son custodiados por esbirros. Joe se dedica a sacar dinero de ambos bandos haciéndoles trabajos a cada uno, sin que el otro bando se entere. Hasta que se enamora de Marisol (Marianne Koch) y los Rojo lo capturan y lo torturan. Pero Joe consigue escaparse y se cobija en una mina abandonada donde es cuidado por el enterrador del pueblo (Joseph Egger) y el cantinero “Silvanito” (José Calvo).