Na década de 1880, o príncipe herdeiro da Áustria, Rudolf (Omar Sharif), entra em conflito com seu pai, o imperador Franz Joseph (James Mason) e sua mãe, a imperatriz Elisabeth (Ava Gardner), sobre a implementação de políticas progressistas para o seu país. Para fugir de maiores atritos, Rudolf encontra refúgio em um casamento arranjado com a princesa Stéphanie (Andréa Parisy), enquanto mantém como amante a baronesa Maria Vetsera (Catherine Deneuve).