À la fin du 19e siècle, Christian (Ewan McGregor) part tenter sa chance à Montmartre. Très vite, il rencontre l’artiste Henri de Toulouse-Lautrec (John Leguizamo) qui l’introduit au Moulin Rouge, monde d’Harold Zidler (Jim Broadbent), où le sexe, les drogues, la musique, le théâtre et le cancan sont monnaie courante, et où Christian tombe amoureux de la belle courtisane Satine (Nicole Kidman).