Kundan Shankar (Dhanush) is the son of a Hindu. Since his childhood days, Kundan has had a strong and obsessive one-sided love for Zoya Haider (played by Sonam Kapoor), a Muslim girl residing in Varanasi whose father is a professor. Though he sees her first as a child, Kundan is steadfast in his love for Zoya. He always attempts to be around her and hold her hand but gets slapped several times in the process. Zoya finally changes her mind because of Kundan’s consistency of affection and attraction. Zoya’s family is orthodox, preventing the lovers from being together. After Zoya moves to Aligarh for further studies, Kundan harmonises with Zoya’s family, assisting them with various chores. Zoya gets into Jawaharlal Nehru University and discovers a long-lost strength as she confronts and then falls for student leader Akram Zaidi (Abhay Deol).
After a period of eight years, Zoya returns to Varanasi. She barely recognises Kundan when she meets him again. Kundan again attempts to ask Zoya for her love but she is reluctant, revealing that she is in love with Akram. Zoya then urges Kundan to convince her family about her marriage with Akram. Initially refusing because he still loves her, Kundan eventually agrees to it and sets about trying to convince Zoya’s father of the match. Kundan gets the wedding of Zoya and Akram arranged. Kundan promises Zoya that he will also tie the knot with another girl and will forget her. Kundan proposes to his childhood friend Bindiya (Swara Bhaskar), who has had a crush on him since childhood.
On the day of their marriage, Kundan finds out that Akram is a Sikh, whose actual name is Jasjeet Singh Shergill. This enrages Kundan as Zoya had used their religious differences to convince him that their match was not possible. Kundan reveals everything to Zoya’s parents thereby interrupting their marriage ceremony. Later, Kundan is informed by his friend that Zoya tried to commit suicide and is in a critical condition. He rushes to the hospital where he is also informed that Jasjeet was mercilessly beaten by Zoya’s relatives. Kundan rushes to find him, along with his friend and Jasjeet’s sister. At the hospital, Jasjeet talks to Kundan and says that despite Jasjeet’s misgivings about the plan, Zoya convinced him to portray himself as Muslim to marry her, a plan he should not have agreed to as it was a lie. Kundan also forgets about his own marriage with Bindiya. For this reason, Kundan’s family disowns him. Later, Jasjeet’s parents take him back to his village. Kundan tries to redeem himself by taking Zoya to Jasjeet’s village. However, he is devastated to find that Jasjeet has succumbed to his injuries, finally making Kundan understand that his one-sided love has resulted in an innocent man’s death.
Kundan then becomes homeless and begins visiting various religious places and volunteering in their activities so that he can atone for his sins. During one such visit to the banks of Ganga, a man advises him to do the right thing rather than running away from his sins.
Motivated, Kundan locates Zoya to Jawahar Lal Nehru University, where she is spearheading the activities of the political party “All India Citizen Party” (AICP), created by Jasjeet. Kundan joins the nearby canteen and serves the people of the party, working at a tea-stall, all the while trying to get Zoya’s attention. Over time, Kundan becomes popular among the party due to his simple nature. The party workers are impressed as Kundan also helps the party in negotiating some tough situations by using his simple yet witty tricks. Slowly, he emerges as a popular face of the party, disturbing Zoya. She holds a grudge that the person who is responsible for Jasjeet’s death is now taking his place. She also tries to instigate party members against Kundan but Jasjeet’s sister Rashmi (Shilpi Marwaha), who is also Zoya’s best friend, tells Kundan to continue, as he is the best choice for fulfilling Jasjeet’s vision.
Kundan, however, only wants Zoya to forgive him. His motive in being there, working for the party is to redeem himself in her eyes. The Chief Minister (Sujata Kumar) tells Zoya privately she must seek revenge on Kundan so as to take the place Jasjeet held for the AICP. To get back the position, she tells her to let Kundan get injured as he delivers his campaign speech for the party. Zoya apparently seems to get brainwashed by this plan and as the Chief Minister desired, Kundan is hurt badly and sent to ICU, thus fulfilling Zoya’s revenge.
At a press meet following Kundan’s injury, the chief minister denies having any hand in the blast that hurt Kundan. She says this can be confirmed by the fact that Zoya would now be joining their party. However, when Zoya steps forward, she reveals that the plan was plotted by her and the Chief Minister and that she is prepared to go to prison for this. Zoya leaves the press meet and finds out through a policeman that Kundan was aware of the plot and still let himself be injured. Shocked by this fact, she rushes to the hospital to be with Kundan.
In a final voice over, a dying Kundan wonders about letting go. He says he might have the desire to live again, if Zoya called out to him, but then again everything had become so tiring and he would rather let go and rest (euphemism for dying). He speaks of the nature of love that continues, by saying that he can be born again and again in the same Benaras with the same surroundings, fall in love with a girl like Zoya again, and become a Raanjhanaa in her love.