Film ini berlatar belakang tahun 1900. Christian (diperankan oleh Ewan McGregor) adalah seorang penulis Inggris yang datang ke desa Montmartre di Paris pada tahun 1899, ketika gerakan Bohemian sedang populer. Dia duduk di sebuah flat yang menghadap ke teater yang sudah tutup bernama Moulin Rouge sambil menulis dengan mesin tik. Kisah yang ditulisnya adalah tentang wanita yang dicintainya, Satine (diperankan oleh Nicole Kidman).
Pada tahun 1899, Christian tiba di Paris, dan berteman dengan sekelompok orang Bohemia yang mengunjungi Moulin Rouge secara teratur. Mereka mencoba untuk memproduksi sebuah drama musikal berjudul "Spectacular Spectacular", yang rencananya akan dipertunjukkan di kabaret oleh pemilik Moulin Rouge, Harold Zidler (diperankan oleh Jim Broadbent). Pemimpin Bohemians, Toulouse-Lautrec (diperankan oleh John Leguizamo), senang dengan bakat Christian dalam menulis dan bersikeras bahwa ia menulis musikal mereka, "Spectacular Spectacular". Setelah mereka mengetahui bahwa Christian adalah seorang penulis yang luar biasa, mereka membuat rencana rumit dengan menghadirkan Christian kepada Satine, yang merupakan seorang pelacur cantik, dengan harapan dia akan terkesan dengannya dan membujuk Zidler untuk mempekerjakan Christian sebagai penulis musikal.
Satine mengerti apa yang terlibat dalam pekerjaannya, meskipun dia berharap meninggalkan Moulin Rouge untuk menjadi aktris "sungguhan". Melalui serangkaian kesalahpahaman, ia salah mengira Christian sebagai Duke yang kaya dan berkuasa yang akan berinvestasi dalam musikal, "Spectacular Spectacular". Dia terpesona oleh puisinya. Dia menyatakan bahwa dia telah jatuh cinta padanya, tetapi terkejut ketika menyadari bahwa dia sebenarnya adalah seorang penyair Bohemia yang miskin.
Setelah beberapa saat, Duke yang asli (diperankan oleh Richard Roburgh) menemukan Christian dan Satine bersama. Mereka berhasil mengelabui Duke untuk mempercayai bahwa mereka sedang mengerjakan pertunjukan musikal, "Spectacular Spectacular". Para pemeran utama tiba dan mengimprovisasi plot pertunjukan di tempat: seorang pelacur cantik India yang kerajaannya diserbu oleh "maharaja jahat". Dia mulai merayu maharaja tersebut untuk menyelamatkan kerajaannya, tetapi secara tidak sengaja merayu dan kemudian jatuh cinta dengan seorang pemain sitar yang tidak punya uang. Keduanya harus menyembunyikan cinta mereka dan menghindari maharaja, meskipun tersirat bahwa salah satu dari mereka mungkin akan mati di akhir cerita. (Segera disadari bahwa tema drama mereka meramalkan apa yang terjadi dalam plot film). Duke setuju untuk mendukung pertunjukan. Namun, dengan cepat ia menunjukkan bahwa ia adalah seorang pencemburu yang kejam yang akan menutup Moulin Rouge jika ia tidak mendapatkan Satine untuk dirinya sendiri. Namun demikian, ia menerima bahwa Satine akan disibukkan dengan latihan dan berhubungan dekat dengan Christian, penulis musikal tersebut.
Christian dan Satine jatuh cinta, sementara Zidler berjuang untuk membuat Duke tetap tertarik pada musikal "Spectacular Spectacular" meskipun Satine belum tidur dengannya. Harold Zidler juga menemukan bahwa Satine sekarat karena penyakit yang disebut tuberkulosis, tetapi tidak memberi tahu siapa pun karena motonya, "The show must go on". Sementara itu, Christian terus mengerjakan drama, di mana pelacur dan pemain sitar yang tidak punya uang berakhir bersama. Namun, Duke tidak menghargai akhir cerita dan mengatakan kepada para pemain bahwa sang pelacur harus berakhir dengan maharaja. Untuk meyakinkan Duke agar berubah pikiran, Satine akhirnya setuju untuk menghabiskan malam bersamanya. Christian diliputi kecemburuan sementara Satine makan malam dengan Duke, yang menawarkan segala sesuatu yang diimpikannya. Namun, ketika Satine melihat Christian di jalan di bawah, dia menolak tawaran Duke, dan Duke mencoba memperkosanya. Setelah dia melarikan diri, Satine dan Christian berencana untuk melarikan diri.
Sekarang, Duke telah menyadari tipu muslihat Satine, dan mengatakan kepada Zidler bahwa, jika "maharaja" tidak mendapatkan "pelacurnya", dia akan membunuh "pemain sitar yang tidak punya uang". Meskipun demikian, Zidler harus memberi tahu Satine tentang kondisi terakhirnya sebelum dia setuju untuk menyerah pada rencana pelariannya. Dia pergi ke Christian dan berbohong kepadanya, meyakinkannya bahwa cintanya adalah sebuah akting dengan harapan hal ini akan membuatnya ingin meninggalkan Paris dan karena itu menyelamatkan hidupnya.
Saat pertunjukan dibuka, Satine tampil dengan lelah, mengetahui bahwa hidupnya hampir habis. Christian, yang menolak untuk menyerah pada Satine, menghadapinya di belakang panggung. Ketika Satine mencoba untuk memaksanya pergi lagi, dia menggantikan posisi pahlawan pertunjukan, melemparkan uang ke kakinya untuk "membayar pelacurnya", dan menyerbu keluar panggung. Satine mengakui cintanya kepada Christian dalam bentuk lagu rahasianya, dan Christian dan Satine kembali bersama di hadapan penonton dan Duke. Duke mencoba untuk menembak Christian, tetapi Zidler memaksanya pergi. Penonton bertepuk tangan atas apa yang mereka anggap sebagai drama yang bagus, tetapi di belakang panggung, Satine diliputi oleh penyakitnya dan meninggal dalam pelukan Christian. Sebagai harapan terakhirnya, ia meminta Christian untuk menceritakan kisah mereka.
Setahun kemudian, masih di flatnya yang menghadap ke kincir angin merah yang kosong, Christian akhirnya mengetikkan halaman terakhir karyanya, mengakhirinya dengan bait, "Hal terbesar yang pernah Anda pelajari, hanyalah mencintai, dan dicintai sebagai balasannya."