En 1893, au centre de l'Inde, les villageois de Champaner attendent en vain la mousson. Pour humilier ce peuple au bord de la famine, le cruel capitaine Russell, chef de la garnison britannique, veut doubler le lagaan, l'impôt sur les céréales. Le jeune Bhuvan, meneur de la révolte contre cette injustice, se voit proposer par l'officier un terrible pari : si les Indiens battent les Anglais au cours d'un match de cricket, ils seront exemptés de lagaan pendant trois ans, mais s'ils perdent, ils devront payer une triple taxe. Bhuvan accepte le pari mais ne dispose que de trois mois pour former son équipe.
Au XVIème siècle, l'Inde est dominée par la dynastie des empereurs musulmans moghols. Le dernier héritier, Jalaluddin Muhammad, un farouche guerrier, multiplie les batailles pour agrandir le territoire de l'empire. Afin d'unifier tout l'Hindoustan, il consent à épouser Jodhaa, une princesse Rajpoute hindoue. Mais une fois mariés, celle-ci demeure distante avec Jalaluddin, refusant d'être la victime d'une alliance politique...
En 1840, une jeune fille nommée 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'un kotha où elle forme des courtisanes. Amiran, qu'on renomme Umrao Jaan, apprend dès lors à lire, à écrire, danser, chanter et charmer les hommes.Umrao Jaan (Aishwarya Rai), 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.