After completing his studies in London, Shakti Thakur (Anil Kapoor) returns to his ancestral village in India. Accompanying him is his girlfriend, Anita (Pooja Batra), whom he is in love with and wants to marry, much to the disapproval of his family. After a few days, Shakti starts to feel that nothing much has changed in his hometown and longs to leave. He tells his father that he wants to sell his share of the family's property and open a chain of restaurants. His father, the zamindar Raja Thakur (Amrish Puri), urges Shakti to stay in the village and help it progress by virtue of the latter's education, saying "A man gets an education not to become a selfish being but to uplift his uneducated brothers and society". Shakti disagrees with his father and decides to leave. He is unable to bear the animosity amongst the townspeople, particularly between his dad, Raja Thakur (Amrish Puri), and rival Zamindar Birju (Govind Namdeo) (Shakti's crippled uncle) and his son Bali Thakur.
The entire village suffers from this longstanding family feud as most of the village and its surrounding areas is divided between the brothers. Since Bali Thakur holds a grudge and always tries to one upon Raja Thakur, it puts them at loggerheads with each other.
Shakti spends time in the village with his girlfriend by re-visiting his childhood memories including a game of sticks with Bali Thakur men which he wins. They come across an old temple which has been closed off on Bali Thakur’s instructions. He insists on entering and his friend and servant Sukhiya breaks open the lock for them to look around. Bali Thakur hears of this and a brutal riot is started among the two village factions. Raja Thakur, in order to quell the situation, contemplates on apologising to his opponents. Shakti feels it should be him or Sukhiya who should apologise. When Shakti asks for Sukhiya, he learns that Bali Thakur's men have cut off Sukhiya’s hand as punishment for opening the temple and Raja Thakur's men burn down the homes of Bali Thakur villagers in retaliation. To prevent a further escalation of the situation Shakti, with permission from his father, enlists the help of his friend in the government and opens the temple for all legally. Slighted by this, Bali Thakur hires goons to break a dam protecting a part of the village faction that supports Raja Thakur. Although a female villager spots one of the goons near the dam, she does not think much of it.
The dam is damaged by explosives used by the goons which results in flooding of half the village. This results in numerous deaths including infants which deeply saddens Shakti. He spots the goon who placed the explosives again in the village and gives chase. After capturing, he hands the goon over to the police but the goon does not speak of Bali Thakur's involvement due to fear for his own family's safety.
Later Bali Thakur intimidates a villager living in Raja Thakur's area to close a portion of his land, preventing the public from reaching the main road easily. Shakti and his father invite them for talks at village Panchayat to resolve the standoff due the riots and flooding. In the village panchayat, accusations fly from both sides. With no evidence backing up the truth, Bali Thakur accuses Raja Thakur for orchestrating various attacks on his brother's family and insults him relentlessly. Disrespected and heart broken, Raja Thakur returns to his home and passes away due to a heart attack later that night. Shakti takes over his father’s duties as the head of the village.
As time passes, this incident dies down. The villagers express concern to Shakti about going around the piece of land that has been closed off and causes a much longer travelling time. Shakti reasons with the owner of the land to open it up for all villagers to pass so that their long commute is shortened. Although understanding and willing, the land owner, is afraid of Bali Thakur’s backlash especially since he has a young daughter Gehna (Tabu). Shakti assuages his fear by arranging marriage between a well-to-do person from his village to the land owner's daughter. Everybody involved happily agrees and the land owner opens up the land for everyone.
On the day of the wedding, the groom runs away, fearing Bali Thakur. The landowner and his daughter are distraught over this claiming that it is a huge disrespect to his family. He opines that even if someone marries his daughter, they have to live in constant fear. Shakti then gets permission from the landowner and weds his daughter. Although Shakti still has feelings for his girlfriend and his new bride is very shy, they overcome their awkwardness and move on. Soon, his girlfriend returns and learns the truth. Although saddened by the turn of events, she understands the situation and leaves. Shakti, too, closes the chapter about his girlfriend and starts his new life with his wife.
Bali Thakur, enraged by the opening of the land, plants a bomb during the village festival despite the pleas of his mother and own father to stop the violence. This results in deaths on both sides of the village. Both factions of the village, wanting revenge, go after Bali Thakur and his family. Shakti protects the innocent family and helps them get away from the villagers. Appreciative of Shakti's efforts to protect them Birju Thakur finally ends his enemity towards him.
Shakti eventually finds Bali Thakur and asks him to surrender to the police before the villagers kill him. Bali Thakur’s rabid hatred for Shakti makes him reject his offer of help. Bali Thakur, blaming Shakti for all his problems, tries to kill him. In the struggle that follows, Shakti accidentally decapitates Bali Thakur. Although other villagers are willing to take the blame for Bali Thakur's murder, Shakti gives himself up to the police to end the cycle of violence once and for all.
The film depicts the true meaning of education as "a tool to uplift uneducated people".Anil Kapoor as Shakti Thakur
Tabu as Gehna
Amrish Puri as Raja Thakur
Pooja Batra as Anita
Milind Gunaji as Bali Thakur
Govind Namdeo as Birju Thakur
Satyen Kappu as Narayandas
Dilip Dhawan as Shakti's brother
Neeraj Vora as Sukhiya
Sulabha Deshpande as Bali's mother
Rita Bhaduri as Mausi
Best Female Playback Singer - K. S. Chithra - (Song: "Payalein Chun Mun")
Virasat was nominated for nine categories at the Filmfare awards and won seven of them. The awards it won are in bold.Best Film (Critics)
Best Actor (Critics) - Anil Kapoor
Best Actress (Critics) - Tabu
Best Supporting Actor - Amrish Puri
Best Cinematography - Ravi K. Chandran
Best Choreography - Farah Khan
Best Story - Kamal Haasan
Best Supporting Actress - Pooja Batra
Best Actress - Tabu
Best Actor - Anil Kapoor
Best Female Playback Singer - Kavita Krishnamurthy for "Dhol Bajne Laga"
Best Female Playback Singer - K.S Chithra for "Payalein Chhun Mun"
Best Female Playback Singer - K.S Chithra for "Payalein Chhun Mun"