The film opens with shots showing Veeraiya (Vikram) jumping off a cliff into water. His gang is busy distracting the police. Police vehicles are set ablaze and women seduce policemen into a trap whereby Veera's henchmen attack. The police are ruthlessly murdered. Raagini (Aishwarya Rai Bachchan), whilst on a boating trip, is kidnapped by Veera. Dev Prakash (Prithviraj Sukumaran), her husband and a senior police officer, is informed of the incident.
A brief montage of sorts showcases the story of Veeraiya. He is seen as a local hero, who runs a parallel govt in areas near Tirunelveli, with his brothers – Singarasu (Prabhu Ganesan) and Sakkarai (Munna). Though considered a terrorist by the local police, Veeraiyya is respected by the villagers. He kidnaps Raagini hoping to avenge the death of his sister Vennila (Priyamani). He brings her to the edge of a cliff to shoot her to death. She refuses to die at his hands and jumps off the cliff into the water far below, hoping to kill herself, but fails to do so. This causes Veera to hold off the murder, being unable to kill someone who has no fear of death.
Dev and his team enter the forests with the aid of Gnanaprakasam (Karthik Muthuraman), a local forest guard. Gnanaprakasam plays the role of Hanuman from the traditional epic. Despite searching deep in the forests, Dev is unable to hunt down Veera.
Meanwhile, Raagini develops feelings for Veera after she hears the story of his sister's death. Dev had led an encounter against Veera during Vennila's wedding. Dev's shot grazes Veera in the neck. Veera, fighting for his life, is unable to protect his sister, and he is led out of the fiasco by his gang. The police pressurise Vennila into revealing Veera's hideout. When she refuses, she is subjected to physical and sexual assault. Veera returns home to find Vennila distraught and traumatised. The next day, she commits suicide by drowning in a nearby well.
Unhappy with the way his brother is leading a war causing distress to his gang, Sakkarai offers a truce to Dev. Dev initially seems to agree but, when Sakkarai comes out in the open, Dev shoots him to death – revealing that he considers the destruction of Veera as more important than saving his wife.
Veera and Singarasu are enraged and attack Dev's camp; they wipe it out completely. A final confrontation between Veera and Dev takes place on a rickety bridge – where Veera triumphs over Dev – when he decides not to let Dev die. He tells Dev he is letting him live because of his wife. Dev manages to extricate himself out and finds Raagini bound and tied up – with Veera leaving her.
Dev is not entirely happy and, while returning to their hometown of Mettukudi, he accuses Raagini of infidelity and informs her that it was Veera who told him so. Furious, Raagini leaves Dev to meet Veera through Singarasu. She manages to meet him and asks him why he had accused her. Veera tells her he said that he had protected Raagini safely for the fourteen days and nothing else. He quickly realises that Dev lied, hoping Raagini would lead him to his hideout.
Dev appears with a police team and confront the duo. Raagini tries to save Veera, but he pushes her out of the line of fire. He is shot multiple times, whereby he falls off the cliff. The touching climax of the movie shows Raagini's true feelings coming to surface: She is seen trying with all her might to save Veera. Although Veera tries to grab her hand amidst the gun fire, he fails to do so, dying without touching Raagini throughout the time he knew her. (In the last song, "Naan Varuvaen," it says he, Veera, will be back to touch her, with his life and soul.) Veera, content that Raagini has feelings for him, falls to his death with a smile.