The story is hackneyed as they come. Two villages on either side of a river (picturesque locations of Kuttanad in Kerala passed off as Tamilnadu) are always feuding as the headmen (Vinu Chakravarthy and Fefsi Vijayan) have personal enemity. Due to some misunderstanding, Vijayan's children die and the blame falls on Vinu Chakravarthy. Vijayan seeks revenge and tries tries to kill Vinu's son but is saved by his servants son but the boy disappears. 20 years later Shiva (Arjun) is shown in a city living with a bakery owner (Vadivelu). Shiva's mission is to protect Devayani and her son from all sorts of gangsters. Priya (Reema Sen) walks into the bakery and falls in love with our macho hero! Just before interval, the true identity of Shiva is known as he saves Devayani and her son from being murdered by Fefsi Vijayan's son. In a flashback it is revealed that Shiva is Giri, the hatchet man of Vinu Chakravarthy. Devayani's husband Suryaprakash (Prakash Raj) is actually the long lost son of Vinu and he was killed by Vijayan. To protect the family that Giri was sent to bring them back to the village. In the village Giri has another love interest, Devaki (Ramya) the niece of Vijayan. All this leads to a bloody climax during a boat race and Vijayan and his family are wiped out by Giri. And the film ends with Giri committing bigamy as both girls cling on to him!