The film is set in mid-to-late 1980s in the Indian state of Punjab which had been wrecked by a violent insurgency in the aftermath of Operation Blue Star, the assassination of Prime Minister Indira Gandhi, and the subsequent 1984 Anti-Sikh riots. The story is relayed by a series of flashbacks.
Jaswant Singh Randhawa (Raj Zutshi) and his sister Veerendar "Veeran" (Tabu) live with their elderly mother Biji in a small village in Punjab. Kripal Singh (Chandrachur Singh) is Jaswant's childhood friend and Veeran's fiance and lives close by, with his grandfather. Their peaceful lives are interrupted by the police led by Assistant Commissioner of Police Khurana and Inspector Vohra, searching for Jimmy, who allegedly had attempted to murder Kedar Nath, a member of the Indian Parliament. Jaswant mockingly leads the police to his dog who was named Jimmy. Angered by his insolence, Khurana and Vohra take Jaswant for questioning but he fails to return for days. Kripal struggles to locate Jaswant, visiting various police stations in the area, while taking care of Jaswant's family. When Jaswant finally returns after 15 days, he has been badly beaten up by police which enrages Kripal. Unable to obtain help by any legal means to fight police brutality, Kripal sets off to locate his cousin Jeetay, who had ties with militant groups. Unable to locate Jeetay, Kripal instead encounters a man named Sanathan (Om Puri), whom he observes planting a time-bomb on a bus. Running into him again at a dhabha, Kripal asks a wary Sanathan to listen to his woes. Sanathan agrees to let Kripal travel with him on his truck being driven by the "Commander" (Kulbhushan Kharbanda) and carrying sacks of home-made bombs and two militants. Upon arriving at their hideout, Kripal explains his predicament and finds out that Jeetay was killed by the Commander himself for being a police informer. Fully aware of Kripal's background, family and his predicament, the Commander rebukes Kripal for coming to them as if they were professional killers and tells him to go kill Khurana himself, but that the group would protect him. Kripal slowly earns the respect of the rest of the group and Sanathan, who explains that he is not fighting for a nationalist or religious cause, but for his basic civil rights and self-respect. Sanathan says that he is fighting against a system that victimizes innocents and de-values ordinary people. It is later learned that Sanathan is a survivor of the communal violence that occurred with the Partition of India in 1947, wherein he lost most of his family in the 1984 anti-Sikh riots. Sanathan claims that it is the ruling class that is trying to divide society by religion for political gain.
Kripal rains with the group and plots the killing of Khurana. After a year, he assassinates Khurana in a busy marketplace. Before going into hiding, he visits Jaswant and Veeran one final time, both of whom are horrified at his deed. When Kripal returns to their hideout, he finds it empty. After a while of staying in hiding, he is contacted by a member of the group and is taken by the Commander to the group's new hiding place in Himachal Pradesh. The Commander informs Kripal that he is known to the police, who had taken Jaswant in for questioning again. Kripal slowly begins to realize that there is no return to a normal life and finds solace in the company of the rest of the unit, which is now preparing for a new mission and awaiting the arrival of a missile firing specialist. When thinking of applying for a local job, Kripal is warned by Sanathan that he is now a big-time terrorist in the eyes of the media and a means of promotion for police officers. One of the group members, Kuldip, narrowly escapes a confrontation with the police, sustaining injuries. Terrified by the experience, he pleads to Sanathan to let him go home, promising to emigrate to Canada. Sanathan reluctantly agrees and while the rest of the unit believes Kuldip is heading home, a bomb planted in his backpack explodes and kills Kuldip on his way home. Meanwhile, Kripal learns that one of his comrades, Jaimal Singh is none other than the Jimmy the police had been looking for. Soon afterwards, the missile shooter arrives and Sanathan introduces Veerendar. Kripal is shocked to find that Veerendar is none other than his fiancée, Veeran. After they finally speak together alone, Kripal is horrified to learn that Jaswant, taken in for questioning after Khurana's murder, was beaten viciously and driven to commit suicide in the jail. His mother died soon after learning of this tragedy, leaving Veeran alone. After receiving daily visits from Inspector Vohra, Veeran decided to follow in Kripal's footsteps and try to reunite with him. Kripal and Veeran begin to grow close again. Veeran is a welcome addition to the household, bringing the simple joys of normal life to the band of outlaws and developing a close friendship with the others, especially Sanathan and Waziren. The mission is revealed to be a plot to assassinate MP Kedar Nath, who had survived Jimmy's assassination attempt, as he arrived for a visit to a local Sikh shrine. During their stay together, Kripal and Veeran decide to get married quietly, but Veeran quietly steals the cyanide pill from Kripal that each of the group members has and is supposed to use if ever caught by police.
While visiting the Sikh shrine to begin reconnaissance, Kripal spots Inspector Vohra, who has been put in charge of security for Kedar Nath's visit. Kripal tracks Vohra to the house where he is staying but, while attempting to kill him, is caught by Vohra and arrested by police. Meanwhile, one of the group members spots Kripal entering Vohra's residence. Arguing that if Kripal had been loyal, he would have taken the cyanide pill to kill himself, Sanathan concludes that Kripal was a police informer. Sanathan also accuses Veeran of helping Kripal and orders her into house-arrest. On the day of the mission, Sanathan orders the group to move, and tells Waziren, who is guarding Veeran, to kill her. However, Veeran breaks free and kills Waziren. In the meantime, Jaimal and Sanathan execute the plot. Jaimal is killed while stopping Kedar Nath's motorcade on a bridge while Sanathan fires the missile to blow up Kedar Nath's car. On the run, Sanathan finds himself being tracked closely, not by the police but by Veeran. Veeran kills Sanathan and escapes.
The film concludes with Veeran, who has not been exposed as a member of the group, visiting Kripal in prison. Here she gives Kripal his cyanide pill and later takes her own.