Rok 1881. Arcyksiążę Rudolf (Omar Sharif), następca tronu Austro-Węgier, zostaje zmuszony do zawarcia małżeństwa z księżniczką Stefanią (Andréa Parisy). Siedem lat później spotyka młodą arystokratkę Marię Vetserę (Catherine Deneuve), w której się zakochuje. Próbuje unieważnić nieudane małżeństwo i połączyć się z ukochaną. Na drodze staje im jednak cesarz Franciszek Józef (James Mason).