En 1840, Amiran (Bansree Mandhani), âgée de 8 ans, est enlevée à sa famille par leur voisin, Dilawar Khan (Vishwajeet Pradhan) et vendue à Madam Khanum Jaan (Shabana Azmi), propriétaire d'une maison de plaisir où elle forme des courtisanes. Amiran, qu'on renomme Umrao, apprend dès lors à lire, à écrire, à danser, à chanter et à charmer les hommes. Umrao (Aishwarya Rai Bachchan), devenue adulte et célèbre dans la région pour son charme et sa finesse, séduit Nawab Sultan (Abhishek Bachchan), un puissant nawab. Mais ses charmes agissent également sur un autre homme, Faiz Ali (Sunil Shetty), un bandit notoire.