Sergio Leone offered the role of Juan Miranda to Eli Wallach, but Wallach had already committed to another project. After Leone begged Wallach to play the part, he dropped out of the other project and told Leone he'd do his movie. However, the studio already had Rod Steiger signed. Leone offered no compensation to Wallach, and Wallach subsequently sued.
When James Coburn (who had been offered roles in Sergio Leone's A Fistful of Dollars (1964) and Once Upon a Time in the West (1968)) was offered the role of John Mallory by Leone, he was initially reluctant. He had dinner with Henry Fonda (star of Once Upon a Time in the West (1968)) and asked him what he thought of Leone. Fonda told him that he considered Leone the greatest director he ever worked with. Coburn then took the part (similarly, Fonda himself had been reluctant to take the part Leone offered him, but was persuaded by his friend, Eli Wallach).
Sergio Leone was initially dissatisfied with Rod Steiger's performance in that he played his character as a serious, Zapata-like figure. As a result, tensions rose between Steiger and Leone numerous times, including an incident that ended with Steiger walking off during the filming of the scene when John destroys Juan's stagecoach. However, after the film's completion, Leone and Steiger were content with the final result, and Steiger was known to praise Leone for his skills as a director.
Still hot from his Oscar win for In the Heat of the Night (1967), Rod Steiger earned $700,000 for this film.
The film was initially planned to have been directed by Leone's assistant Giancarlo Santi, but both Rod Steiger and James Coburn demanded that Sergio Leone direct the picture, so Santi was out.