Hispanoamérica, siglo XVIII. La acción se desarrolla en la jungla tropical próxima a las cataratas de Iguazú. Allí un misionero jesuita, el padre Gabriel (Jeremy Irons), sigue el ejemplo de un jesuita crucificado, sin más armas que su fe y una flauta. Al ser aceptado por los indios guaraníes, Gabriel crea la misión de San Carlos. Entre sus seguidores está Rodrigo Mendoza (Robert De Niro), ex-traficante de esclavos, mercenario y asesino, que se hace jesuita y encuentra la redención entre sus antiguas víctimas. Después de luchar juntos durante años, se enfrentan a causa de la independencia de los nativos: Gabriel confía en el poder de la oración; Rodrigo, en la fuerza de la espada.