Set in the pre-independent days in India, Saket Ram (Kamal Hasan), an archeologist, lives with his wife Aparna (Rani Mukherjee) in Calcutta.
The partition riots takes its toll when Aparna is killed by the neighborhood Muslims. An infuriated Saket Ram avenges her death by killing them and flees to Madras. He gets married to Mythili (Vasundhara Das) and takes her to Pune. There he is befriended by Abhayankar (Atul Kulkarni), a RSS activist, who in turn introduces Saket Ram to the leader of a group that is conspiring to assassinate Mahatma Gandhi (Naseeruddin Shah) for his biased ideologies about the Muslims. As Abhayankar suffers a paralytic stroke and rendered invalid, Saket Ram is unanimously appointed as the person to carry out the mission. He leaves behind his pregnant wife and proceeds to Delhi.
There he meets Amjad (Shah Rukh Khan), a migrant from Karachi, amidst the Hindu-Muslim riots. Amjad tries to convince Saket Ram but dies in the crossfire. Does Ram proceed further? Watch the nail biting finish.