The film begins with SP Amit Kumar (Ajay Devgan) taking charge of the fictitious Tezpur District (West Champaran) in Bihar. The area is notorious for its crime rate, with Tezpur Police under the control of the local don Sadhu Yadav (Mohan Joshi) and his son Sundar Yadav (Yashpal Sharma). Amit tries to instill honesty and courage in his subordinates, but in vain. Bacha Yadav (Mukesh Tiwari), who is a stooge of Sadhu Yadav visits his hideout, sees an infamous local goon Nunwa taking shelter there.
Fearing that arresting him would open the lid on the nexus between Nunwa and the Tezpur Police, he kills Nunwa and misleads Police that he was killed in an encounter. Suspicious about the encounter, Amit Kumar summons Bacha Yadav, puts him off duty temporarily and also tries to keep him away from Sadhu Yadav and Sundar Yadav. Anxious that he would be transferred from Tezpur, Bacha Yadav, seeking the help of Sadhu Yadav, visits his home, where he finds out that he is being ditched by Sadhu and vows to settle score with them. Meanwhile, Sundar manhandles a Public Works Department engineer for not heeding to his word during a tendering process. Amit takes notice of the incident and also finds that a girl is missing from her home after being kidnapped by Sundar. Sensing an opportunity, Bacha Yadav urges Amit to give him one more chance, who obliges him. Bacha Yadav tricks Sundar into a factory where Amit and his men are waiting and after a brief scuffle, Sundar is arrested and produced in a local court, where the judge acquits Sundar on the account of lack of evidence against him.
Sadhu Yadav's men then try to vandalise a shop of local pan vendor after he testified against Sundar, before being arrested and jailed in the police station. There, a fight arises between the accused and Bacha Yadav and his colleagues. It reaches an extreme point with Bacha Yadav piercing the eyes of the accused and pouring acid, referred locally as "Gangaajal", on their eyes. The incident raises a hue and cry in the local media, which accuses Police of vigilante justice. Angered by the incident, Amit Kumar orders his men involved to give their confessions in writing. While all, except Bacha Yadav, deny their involvement, Bacha Yadav writes his confession in a letter and submits it to Amit. When Bacha Yadav reaches his home, he finds his son and wife taken hostage by Sundar Yadav who, after a brief struggle, kills Bacha Yadav by shooting in his eyes. Enraged by the incident, Amit Kumar burns the confession letter of Bacha Yadav and issues a search warrant for Sundar and warns Sadhu Yadav to tell Sundar to surrender himself. Sadhu Yadav applies for an anticipatory bail for Sundar but before Sundar is produced in the court, he is arrested and is taken to jail. This time, the court rejects the bail application and orders the Police to keep Sundar in a 10-day custody.
However, Sadhu Yadav influences local home minister and the Deputy Inspector General of Police (DIG) (Mohan Agashe) of the area, Verma, to release his son and also to send Amit on an emergency leave. After being released, Sundar disrupts the marriage of the girl who he kidnapped earlier and kills her mother in the process. Unable to bear the loss of her mother and the torture at the hands of Sundar, she kills herself in the presence of Amit. Amit detains both Sadhu and Sundar and tries to take them to Police Station. However, locals stop Amit and demand that both be killed then and there itself, before being convinced by him that they would be tried as per the law. On the way to Police Station, however, both Sadhu and Sundar escape. Amit then catches up with them and brief fight takes place between them and the film ends with both Sundar and Sadhu getting killed by falling accidentally on chisels of a plough, which incidentally pierce through their eyes.Ajay Devgan as Superintendent of Police Amit Kumar
Gracy Singh as Anuradha (wife of Amit Kumar)
Mohan Agashe as Deputy Inspector General of Police Anurag Verma
Mukesh Tiwari as Inspector Bachcha Yadav
Akhilendra Mishra as Deputy Superintendent of Police Bhurelal
Mohan Joshi as Sadhu Yadav
Yashpal Sharma as Sunder Yadav
Ayub Khan as Inspector Shaheed Khan
Anoop Soni as Inspector Neelkanth Tiwari
Daya Shankar Pandey as Sub-Inspector Mangni Ram
Master Yash Pathak as Ravi
Kranti Redkar as the kidnapped girl - Apoorva Kumari
Chetan Pandit as ASI Bholanath Pandey
Manyata Dutt (Dilnawaz Sheikh) as Special Appearance in an item song
Varsha Nevase (Wai) – as a special Appearance in advocate line
Ghanshyam srivastva- As prajapati mishra lockup incharge
Padam Singh -
Vishnu Sharma as Dwarka Rai Home Minister
In India, the film grossed ₹142.5 million (US$2.2 million) and was a hit at the box office. In the UK, it grossed £13,288.
The film received mostly positive reviews. Deepa Gumaste of rediff.com praised the film and saying that though the film "doesn't have anything original to say, it is well shot, well edited and brilliantly enacted by most of the lead actors". Anupama Chopra wrote: "Gangaajal is persuasive cinema. It is not pleasant but it is memorable." It currently holds a "65% fresh" rating on Rotten Tomatoes with an average rating of 3.6/5.2004:National Film Award for Best Film on Other Social Issues
2004 Filmfare Best Background Score Award: Wayne Sharpe
A sequel Jai Gangaajal starring Priyanka Chopra was released in March, 2016.