The executives of the multinational mining company Nirvana Group inform Krishna Das (Prithviraj Sukumaran) that his ancestral property in Kerala, leased out to a non-governmental organisation (NGO) by his late grandfather, is both rich in minerals and able to be sold because the lease period has expired.
Nirvana Group offers him a large sum of money as an advance on the purchase. The NGO currently runs a tribal school on the property, which is situated inside the Kannadi Forest Range. When Krishna Das and his friend Thanseer (Prabhu Deva) come to the property, they are kidnapped by local tribal men and taken to a cave deep in the forest. There, Krishna Das meets the tribal chief Thangachan (Arya), who explains to him that he is the descendant of Chirakkal Kelu Nayanar.
In early 16th century, the Portuguese sailors under Vasco da Gama (Alexx ONell) captured a Muslim pilgrim ship and took all the passengers as prisoners. The general of Chirakkal Kingdom (northern Kerala), Kothuwal, sends a Brahmin negotiator and his own son, Kelu, to the captured ship to negotiate the prisoners' release.
However, Vasco da Gama viciously rejects their attempt at negotiation, cutting off the negotiator's ears. He then orders that the prisoners be locked in the hold and the ship set on fire. Kothuwal storms the burning ship to rescue his son, Kelu. Although Kelu escapes, Chirakkal Kothuwal is killed during the rescue attempt.
Vavvali, a Tamil Muslim boy, takes Kelu with him to his hut, and treats him as his younger brother. Kelu crafts an urumi from the leftover ornaments of the dead women and children of the pilgrim ship. He takes an oath to one day kill Vasco da Gama.
Kelu and Vavvali are next seen as adults hunting rabbits in a forest somewhere in Chirakkal. They save the princess of Chirakkal Bala (Nithya Menon) from a group of abductors, who apparently have been organized by her cousin Bhanu Vikraman (Ankur Khanna). Under the orders of Bhanu Vikraman, Kelu and Vavvali are arrested by the Chirakkal guards and tried before Chirakkal Thampuran (Amole Gupte). In the trial, it is revealed that the two young men saved the princess' life. The king grants them an audience.
During the audience, Kelu manages to convince the king to support his quest to capture Vasco da Gama, who is scheduled to return to India as the Viceroy. They plan to conduct a secret raid and capture da Gama during the hanging of Balia Hasan in Arackal Fort. However, they instead capture Estêvão da Gama (Alexx O'Nell) and bring him as a prisoner to Chirakkal. In the process, Kelu comes across Princess Ayesha (Genelia D'Souza), a fiery warrior princess of Arackal Palace. With the help of Ayesha, Balia Hasan is freed from the gallows.
Back in Chirakkal, the king bestows Kelu with the honour of being the new general ("Kothuval"). Vavvali, however, is somewhat unhappy as the king neglected to acknowledge his role in the capture of Estêvão.
Princess Ayesha is among captives from a raid in Arackal, which was secretly undertaken by the Chirakkal royals in the midst of Kelu's abduction plan, and she is presented to the spoiled prince Bhanu Vikraman as a concubine. She then tries to kill the prince, but Kelu saves him.
Later, Kelu helps Ayesha escape from Chirakkal. Kelu tells Vavvali that they should be planning to capture Vasco da Gama rather than spending their days in Chirakkal Palace. With Princess Ayesha, they set out to all the nearby villages and succeed in garnering support from the villagers against the Portuguese. A large number of people join with Kelu, and they prepare to attack.
Meanwhile, with the help of minister Chenichery Kurup (Jagathy Sreekumar), Bhanu Vikraman conspires against his uncle and joins forces with Estêvão da Gama. He assassinates his uncle with a Portuguese pistol. Kelu returns to Chirakkal Palace to discuss with Vikraman, now king of Chirakkal, what actions to take against da Gama, but Bhanu hesitantly states that the army will no longer take orders from Kelu. Chirakkal Bala, the princess of Chirakkal, now joins with Kelu and his cohorts.
Meanwhile, da Gama (Robin Pratt), accompanied by Estêvão da Gama among others, arrives at the Chirakkal Palace. Chenichery Kurup, whom da Gama remembers at first sight, welcomes him. During the audience, Bhanu Vikraman is killed by Estêvão da Gama. As a mark of respect for his allegiance to the Portuguese crown, the empire offers Kurup the post of the Governor General of the Laccadives.
The Chirakkal army, led by Angadan Nambi, attacks the rebel hideout. Rebels under Kelu, Vavvali, Ayesha and defected Chirakkal general Kaimal fight back. Soon, an Estêvão da Gama-led Portuguese unit arrives in the village as reinforcement for the Chirakkal force. The rebels manage to defeat the combined forces, but Vavvali is killed in action. The rebels now launch an attack on the Chirakkal Palace.
A terrible battle ensues. The rebels are immediately put on the defensive by the Portuguese cannons. Kelu manages to breach the perimeter set up by Estêvão and enters the palace. He manages to attack da Gama but is killed by the musketeers.
After hearing the moving story of his ancestors, Krishna Das decides not to sell his land to the multinational mining corporation and instead to start a new life in Kerala.