The film opens at St. Stephen's College in Delhi with the story of three students, Siddharth Tyabji (Kay Kay Menon), Geeta Rao (Chitrangada Singh) and Vikram Malhotra (Shiney Ahuja). Siddharth is a driven revolutionary who dreams of bringing a revolution in the state of Bihar that will end the caste-based discrimination there; bring social justice, and, change the society for the better. Geeta is a London returned, South Indian girl in love with the firebrand Siddharth. She has led a very sheltered life thus far, and is yet to explore the terrain of the Indian socio-political landscape. While she finds Siddharth's Naxalite rhetoric attractive, she is not sure if she can whole-heartedly subscribe to it. And every time they come to point of choice, Siddharth chooses his ideology over his love for her thus breaking her heart time and again. Vikram is a middle-class boy who dreams of making it big, whatever the cost. He is particularly afflicted by his father's Gandhian ideas, but irritated and frustrated at the same time, seeing his father's way of life as ineffective in bringing about a change.
Siddharth leaves for Bihar to bring about a revolution; Geeta leaves for Oxford to get a degree, and Vikram sets up an office in Delhi.
A few years later, Vikram is a fixer in the power corridors of government, Geeta is married to promising IAS Officer Arun Mehta (Ram Kapoor) who, as Geeta says "has it all", and Siddharth is still trying to foment a revolution. But all is not as it seems. Below the mask of happiness, each is quite unhappy. Siddharth has 'made it', but he still cannot get Geeta, the love of his life. Geeta is married, but she still meets Siddharth on the sly, cheating on her husband.
Eventually, Geeta gets a divorce from her husband because of her love for Siddharth, even though she does not want to hurt her husband's feelings. Geeta joins Siddharth in the village where she starts to teach the children of the village, whilst the police repeatedly try to hunt down her now husband, Siddharth. She bears a child with Siddharth whom she sends to London to her parents since she believes he deserves more than to grow up in the remote village.
Eventually the police round up the entire village, capturing Siddharth and Geeta for intent to cause unrest and brutally assault them both, fabricating a story of a villagers' riot to explain their injuries. Geeta is soon bailed out of prison by her now influential ex-husband, while Siddharth, on the run, is shot by the police and admitted to a local hospital and is placed under arrest while Geeta believes him to have been killed.
Vikram, who has been consoling Geeta and taking care of her during the absences of her ex-husband and of Siddharth, is informed that Siddharth is still alive. Vikram travels to meet Siddharth and release him using his influential contacts, however he has an accident on the way and is admitted to the same hospital as Siddharth. During the night, local Naxalites break into the crude hospital and free Siddharth while Vikram still lays there. The next morning, the policemen in charge of guarding Siddharth, frustrated, accuse Vikram of having conspiring to free Siddharth and beat him up. After discovering that he is a man of influence, they resolve to kill him and dump his body to make it unrecognisable. Vikram, terrifed, attempts to escape but is chased down, however the policeman finds that the Naxalites have emptied his revolver, and they beat Vikram up with an iron rod. Soon, the police chief and a local politician come looking for Vikram and are able to stop the policemen from killing him.
Vikram suffers heavy brain damage and is rendered handicapped, while Siddharth tells Geeta that he intends to leave but Geeta refuses to accompany him. Siddharth has moved beyond simply trying to foment a revolution, and is prepared to delay it because he feels that the people are not ready in spite of their saying otherwise. He goes to London to study medicine and through a letter, voices his anguish and disillusion with the idea of revolution, he writes saying "I hope the mysteries of the human body will be less confusing" (in reference to his studying medicine and quitting the revolution).
The last scenes shows Geeta going back to continue working in the village and taking care of the handicapped Vikram, who can no longer speak. The movie ends with Vikram writing "I love you Geeta" on a rock, as they both sit by a placid lake and watch the sunset.