Benicio Del Toro chose Ryan Gosling to play Benigno 'Beni' Ramírez. Gosling met with the real Ramirez and learned some Spanish to prepare for role. But delays during pre-production caused Gosling to drop out of the project.
The scene where Che takes the bazooka from his fellow soldier (who keeps missing) and blows up the barracks with his first shot, was meant to show Che miss once then hit the target on his second attempt, but the crew were losing light so they had him get it in one.
Although Benicio Del Toro was always considered the absolute first choice to headline this film, Val Kilmer was considered as a secondary option to play Argentine revolutionary Che Guevara if Del Toro had not been available.
The film is a tribute to the Marxist notion of advancement through two conflicting ideas, known as dialectics, with its division into halves, with two tempos, two color schemes, two aspect ratios and two approaches to chronology. Each half focuses on a different revolution, both fundamentally the same in theory but vastly different in outcome.
Terrence Malick originally worked on a screenplay limited to Guevara's attempts to start a revolution in Bolivia. When financing fell through, Malick left the project, and subsequently Steven Soderbergh agreed to direct the film.