The city of Kozhikode is victimized by a massive communal riot against the slums, costing the lives of 12 people. Madhu Kumar (Appa Haja), a wildlife photographer, had witnessed a group of criminals transporting explosives through the local forest check post, so he calls up the local police commissioner Shankar (Devan) and passes the information. Shankar asks him to wait for his officers to pick him up. But instead of the police, it was the same goons who came for Madhu, resulting in his death. While having the police to fight against the rioters, the aggressive and belligerent, yet honorable and incorruptible district collector Joseph Alex IAS (Mammootty) is suspicious of Shankar's activities and decides to investigate the case. He is assisted by ASP Prasad (Ganeshan), one of the sincere officers who admires Joseph for his arrogant way of dealing politicians and officials. Also tagging along with Alex is the young assistant district collector Anuradha Mukerji IAS (Vani Viswanath), whose freecare style conflicts against Alex's strict behavior because of her tragic childhood. It later turns out that Anura's behavior was rooted from a horrible experience of when her father continuously cheated on her mother a lot, and that her mother prayed to her to no avail, which is why Anura pretended to be a freak to ease her pain. Upon learning this, Alex decides to warm up to her.
The next day, Alex is brought over to a personal hearing with the state minister John Vargeese (Kollam Thulasi), who berates him over his behavior while attempting to stop the riots. However, Alex stands up by berating Varghese for his belief to using his power to hurt others. Meanwhile, Madhu's father (Thikkurissy Sukumaran Nair) reaches out to Prasad for filing a man missing complaint, resulting Prasad in discovering the body of Madhu in a decomposed stage with his camera, but the film is missing.
As the investigation heats up, the local Member of Parliament Jayakrishnan (Murali) is struggling over the issues over the damaged area. However, it turns out that he is the mastermind behind the massacre, as he planned the communal violence against the slums to plan new real estate business in the area. Also involved in the conspiracy is Varghese himself, Kandanmkuzhi Thankachan (Azeez), and Shankar, who tries hard to topple off the investigation, revealing that he sent up the goons to find and kill Madhu to cover their tracks.
The local police medical surgeon Dr. Vijay, who has conducted the autopsy of Madhu, later found that Madhu was actually murdered. However, before he could reveal it to the public, he was found dead in a road accident on the next morning. Sanjay (Vijayaraghavan), a close buddy of Joseph during his Mussourie training days, arrives in Kozhikode to investigate the murder of Dr. Vijay, who happens to be his brother. Joseph, along with Sanjay and Prasad, find out that Dr. Vijay was injected with a powerful drug by the same goons who killed Madhu, which could've contributed to the accident. While Jayakrishnan flies off to Delhi to accept his new job as cabinet minister of Central Ministry, Alex interrogates Vargeese, who then reveals the identity of the leading goon responsible for the murders of Madhu and Dr. Vijay, Anathashakara Iyer (T.S.Krishnan). After arresting Iyer, Alex uses the same sedative that resulted in Dr. Vijay's death to force Iyer into giving out important information of the conspiracy behind the communal riot. However, before Alex and Prasad could escort Iyer to the police station, Iyer's boss Vikram Khorpade, a Mumbai underworld don who has strong ties with Jayakrishnan and being a major player in the conspiracy, arrives and causes a shootout that allowed him to rescue Iyer. Vikram also took the opportunity to personally kill Anura by shooting her down before fleeing away with Iyer, much to Alex's shock.
Declaring this personal, Alex, Prasad, and Sanjay track down Vikram and his goons to a horse farm. After Sanjary kills Iyer by hanging him on a chain, Alex takes Vikram into custody, forcing him to reveal the identities of the people behind the conspiracy. On the arrival at the airport after a sworn-in ceremony as the new Cabinet Minister, Jayakrishnan is met by an angry Alex and several other officers, as they have awaited for his return. Alex then took the opportunity to reveal Jayakrishnan's plans and conspiracy to the public, using both Iyer and Vikram's confession as proof of his findings. As a result, Jayakrishnan is placed under arrest for conspiracy to crime and murder while Shankar is suspended from the police force and arrested by his own officers for the same charges. However, Jayakrishnan, refusing to concede defeat, takes one of his guards' guns and fires at the crowd, killing Vikram and several citizens. Jayakrishnan then uses the commotion to make a getaway in a car, only for Alex to shoot the gas tank, resulting an explosion that destroys the car, killing Jayakrishnan inside. Alex is then hailed as a hero by the public for his actions.