In 1840, a girl named Amiran (Bansree Mandhani) is kidnapped from her home in Faizabad by Dilawar Khan (Vishwajeet Pradhan) who had been sent to jail based upon the evidence presented by Amiran's father. To take his revenge, he kidnaps Amiran and sells her to a brothel in Lucknow run by Khannum Jaan (Shabana Azmi). Bua Hussaini (Himani Shivpuri) and Maulvi Sahib (Kulbhushan Kharbanda) adopt Amiran and treat her as their own daughter. In the company of Khurshid (Ayesha Jhulka), Bismillah (Divya Dutta), and one of the courtesan's sons, Gauhar Mirza (Puru Raajkumar), Amiran learns the art of being a courtesan, or tawaif.
The girl turns into an elegant, poetic beauty by the name of Umrao Jaan (Aishwarya Rai). Umrao's beauty and poetry is enough to catch the eye of Nawab Sultan (Abhishek Bachchan). The two begin a passionate romance but, when his father hears of their relationship, he disowns Nawab Sultan from his life, wealth and property. The penniless Nawab goes to stay in the house of his uncle, who is a judge in Ghari, to sort himself out; Umrao is left desolate without him and prays every day for his return.
In the Nawab's absence, Umrao catches the eye of Faiz Ali (Sunil Shetty). Though she rejects his romantic advances, he determinedly pursues her and eventually asks her to accompany him to his home in Daulatabad. Umrao accepts, but only after she learns that they will be travelling through Ghari. Along the way, the whole party is arrested after a confrontation between Faiz Ali's men and a group of state soldiers. Faiz Ali is revealed to be a dacoit whom the soldiers have pursued for years. Nawab Sultan hears that Umrao and Faiz Ali are in Ghari and goes to meet Faiz Ali in prison. Faiz Ali, who then realises that Umrao only accompanied him so that she could meet Nawab, manipulates the information concerning his time with Umrao and implies to the Nawab that they had a sexual relationship. The Nawab confronts Umrao and, feeling that she betrayed him, shuns her and sends her back to Lucknow. Heartbroken, Umrao returns to her old life, but fate has other plans for her.
In a drunken state, her childhood friend Gauhar Mirza (Puru Raajkumar), who has always been in love with her, becomes frustrated at her for rejecting his advances and rapes her. Soon after, the British attack the city and she is forced to leave Lucknow. She and the refugees separate after she decides to go to Faizabad, her childhood home. There, she learns that her father is long dead. She meets her mother and brother, but they refuse to accept her because of her profession. Umrao, rejected by her family and her lover, leaves to return to Lucknow. Then, fate plays another joke on her: On her way out of the city, she encounters Dilawar Khan, the man who kidnapped her and sold her to the brothel when she was a child. Poor, wretched, homeless and injured, the man begs her for money, not recognising who she is; she gives him her gold bangles and prays to God for his forgiveness. Ostracized by all and having forgiven those who destroyed her life, Umrao lives out the rest of her days in Lucknow with her poetry and ill fate.