Swami Amritananda (Mohanlal) arrives in Kerala on a mission to bring peace at the state, which is burning with communal riots. Swamiji, who is worshiped and respected all over the world, receives death threats from different corners. Lakshmi (Revathi), the district collector, is assigned to look after Swamiji's security. She warns Swamiji about the inherent dangers of the tense and disturbed situation in the State. The presence of Lakshmi, who had been the lover of Swamiji in his past, brings back old memories to him.
Years ago, Swami Amritananda was Shivaprasad (Shivan), the only son of his mother, who had to undergo unpleasant experiences in her home from her own brother Krishnan Kutty Menon (Janardhanan), a police officer, who was loyal to the govt. The Communist party in those days was facing strong restrictions from government for its anti-state activities.
Shivan had always been a headache for his mother, for his rebellious nature. But Lakshmi, the daughter of Krishnan Kutty Menon was in love with him, which was opposed bitterly by Menon. Shivan, slowly got involved with Communist movement and in short time became their political henchman (goonda).
Shivan gets involved in several petty crimes and thus invites more anger from his uncle Menon. Karthy, a lady party worker with strong naxalite leanings develops a strong passion towards Shivan, but he is unaware of it. Vasu (Jayaram), his close friend since childhood, is a fun loving character, who always saves Shivan from several issues.
Shekharan (M. G. Soman), the party leader identifies the potential of Shivan and decides to use it maximum for his own personal benefit. Unknowing the shroud tactics by Shekharan, Shivan gets involved in several crimes, one after another. One day, Karthy, in order to separate Lakshmi from Shivan, fabricates a story about her relation with him.
She succeeds in making Lakshmi believe that she was having an illicit affair with Shivan. Thinking that Shivan was just double dating her, Lakshmi informs police about Shivan's hideout and he is arrested and sentenced for a couple of years imprisonment. This incident changes Shivan completely. He turns into a hardcore criminal, and develops a hatred towards Lakshmi.
In a couple of years, the political scene in the state changes. Communist Party wins power, and Shivan is released from jail. He is appointed as the secretary of temple Devaswom, and Lakshmi is now an IAS officer, who is now holding the post of Devaswom administrator under Shivan. He tries maximum to belittle her. Shivan, a complete corrupt person, now tries the maximum to loot the temple.
The temple staff under Sreekanta Poduval (Narendra Prasad) tries to protest, but ends in vain. Vasu is brought into the temple by Shivan, to create a division among the temple staff. Lakshmi tries to convince Vasu, but he expresses loyalty to Shivan, his close friend, without knowing his corrupt ways or political ambitions. Vasu, with in this time fall for the daughter of Parameshwaran Namboothiri (Thikkurissy Sukumaran Nair), the head priest of the temple.
However, she avoids him completely. Vasu, a lower caste by birth, has no chance to win her, who is already engaged to Chitran Namboothiri (Manianpilla Raju). Under the instruction of Shekharan, Shivan steals the sacred ornament and during the investigation the Thantri is arrested for the theft. Shivan's motive behind the plan was to regain Krishnan Kutty's house. Upon being confronted by the Thambrati, Vasu withdraws his statement against the Thantri. Due to the embarrassment he faced after release, the Thantri committs suicide.
Vasu soon gains a position in the Devaswom board, and sides with the common people instead of Shivan during the meetings. Upon realizing that he could be a threat, Shekharan reveals Vasu's real motives in front of everyone to get him kicked out. On the flip side, he is allowed to stay as he repented his mistakes. Following these incidents, Shivan and Vasu's friendship goes through a rough phase.
Later, Lakshmi learns that Karthy, who was in jail at that point, had made her believe a false story because of the party's agenda. Upon revealing the truth to Shivan, Vasu goes on to fix his relationship with Shivan. Vasu soon confronts Shekharan and threatens to reveal the truth to the cops; soon after he leaves, some goons follow him to finish him off. Upon coming to know about the plans, Shivan hurries to save Vasu.
After a showdown with some goons, Shivan comes to know that Vasu had been killed before his arrival. After Vasu's death, Shivan attempts to take Shekharan's life; instead, the cops are called and Shivan's arrested. Meanwhile, Shivan's mother passes away thinking that he killed Vasu.
Back to the present, Shekharan and his accomplices plan to kill Swami Amritananda in an attempt to save their face. The plan is to kill Swami Amritananda during the "Ratha-Yatra" using a bomb. As soon as Lakshmi comes to know about the plan through Kaiyathan, she does everything in her right to save Swami's life; in the process, she gives her life to save the Swami. After Lakshmi's death, Swami goes back to Shivan's avatar to seek revenge for everything he lost. Finally, he kills Shekharan and all his accomplices.
In the end, Shivan accepts his actions in front of the town and urges them to stay united, instead of being divided.