Aishwarya Rai Bachchan, Kishore Kumar G., Vikram, Jayam Ravi
The film opens with a flashback, chronicling the childhood of Nandini (Aishwarya Rai Bachchan) and Aditha Karikalan (Vikram). Nandini was raised in a priestly family, and Aditha, training for his future as king, met during Nandini's visit to Pazhayarai. Love sparks at first sight, coinciding with Arulmozhi's (Jayam Ravi) (Ponniyin Selvan) horse race victory. Kundavai (Trisha) tries to befriend Nandini, but a playful moment with Aditha leads to Nandini's forced departure from the palace. Kundavai, discovering Nandini's orphan status, forbids her from palace visits. Nandini then deliberately ignores Aditha's attempts to reconnect.Aditha informs Nandini of his imminent two-year military deployment. Saddened, Nandini prays daily by the river where he departed. Upon his return, they confess their love. Despite Kundavai's objections to Nandini's beauty and non-royal status, Aditha Karikalan and Nandini hope for a happy marriage. Facing opposition, they plan to introduce Nandini as the future queen. However, Kundavai and Sembiyan Mahadevi (Jayachitra) forcefully expel Nandini during Aditha Karikalan's absence, leading to his devastation upon learning of her departure and refuge under Veerapandiyan (Nasser).In the current time-line of 968 AD, the presumed death of Arulmozhi Varman, saddens the empire. Rashtrakuta King Khottiga (Babu Antony) was amassing an army to invade Tanjore, meanwhile Pandya assassins wanted to avenge Veerpandiyan's (Nassar) death. Sundara Chola's uncle Madhurantakan wants to stake his claim to the Kingdom against his mother's wishes. Parvateshvar is the treasurer of the Chola Kingdom and supports Madhurantakan. Nandini is married to Parvateshvar. Nadini was secretly supporting Pandyan rebels. Nandini also tricked Sundara Chozhar to pass an order to capture Arulmozhi in Lanka and bring him back. But the ship bringing him back sank in stormy waters. Aditha is enraged at Nandini for Arulmozhi's death and heads to Tanjore to confront her.Parthibendran is Aditha's friend and was bringing Arulmozhi back to Chola when the ship sank in a storm. Sundara Chozhar takes Parthibendran captive as he suspects him of killing Arulmozhi.
Parthibendran Pallavan (Vikram Prabhu), smitten by Nandini, is manipulated into diverting Aditha Karikalan to Kadambur for the empire's well-being. Nandini says that she only wants Aditha to be safe. This way Aditha no longer plans to take his army to Tanjore to confront Madhurantakan.
Vallavaraiyan Vandiyadevan (Karthi) and Poonguzhali (Aishwarya Lekshmi), with a frail Ponniyin Selvan, encounter Azhwarkadiyan Nambi (Jayaram) and Sendhan Amudhan (Ashwin Kakumanu). Ponniyin is nursed back to health by monks.
Ravidasan (Kishore) and the Pandya Aabathudavigal ensure Ponniyin Selvan's demise, but are thwarted by Vandiyadevan. Vandiyadevan misleads Ravidasan and gets captured.
Meanwhile, Madhurantakan (Rahman) proclaims himself successor, aligning with Shivan Adiyars and Rashtrakuta King Khottiga (Babu Antony) for vengeance.Nandini daydreams about Aditha through his Tiger Signet ring. Later, she, Ravidasan, and others plot to assassinate Aditha Karikalan, Sundara Chozhar (Prakash Raj), and Ponniyin Selvan. Nandini says that Ravidas failed to kill Ponniyin and cannot even dream of touching a far more capable Aditha.
Nandini reveals her plan to kill Aditha Karikalan in Kadambur, overheard by the captive Vandiyadevan. Nandini elaborates that Ponniyin, Sundara Chozhar and Aditha have to be killed simultaneously for the plan to succeed.
He discloses seeing Oomai Rani (Aishwarya Rai Bachchan), Nandini's mother-like figure who resides near a river in Lanka, earning Nadini's reprieve. Disguised Nambi rescues Vandiyadevan, who informs Kundavai of Ponniyin Selvan's survival, reciprocating her feelings.Nambi alerts Aditha Karikalan of Ponniyin Selvan's existence. Kundavai and Aditha rush to Nagapattinam's Viharam, where Ponniyin Selvan is being treated. Aditha learns of Nandini's plot in Kadambur but dismisses Vandiyadevan's warning that all 3 Chola royals would be eliminated on the same day. Ponniyin Selvan reveals Oomai Rani's resemblance to Nandini, raising Kundavai's suspicions about her father's knowledge.Kundavai travels to Thanjavur, where Sundara Chozhar discloses his past with Mandakini in Lanka. Mandakini had saved Sundara from an attack from the Pandya Navy. Sundara stayed with Mandakini for a few days. Sundara Chozhar was in love with Mandakini and wanted to marry her, but once he was crowned emperor, he never went back to Lanka and betrayed her trust.
Kundavai suspects Nandini's relation but learns Mandakini was pregnant two years after Sundara Chozhar's marriage. Mandakini came to Chola Kingdom when she was pregnant. She gave birth, left the baby with the temple priest and left.
Pandyas plan to murder Ponniyin Selvan at the monastery of the monks, but he foils their attempt.Poonguzhali, spotting the Pandyas, alerts Chinna Pazhuvettaraiyar in Thanjavur. Meanwhile, in Kadambur, Aditha Karikalan arrives. As Nandini and Aditha Karikalan lock eyes, they reminisce about their past love that transformed into hatred. Periya Pazhuvettaraiyar (R. Sarathkumar) and other kings propose dividing the kingdom with Madhurantakan, but Aditha Karikalan opposes, offering to relinquish the domain for Madhuranthakan's rule if he can keep his army for his siblings' safety. Everyone agrees to his condition.In Thanjavur's fort, Pandyas infiltrate the fort. Meanwhile Velar brings his army to the fort wanting to challenge Madhurantakan, leading to conflict between Velar and Pazhuvettaraiyar (R. Parthiban). Ponniyin Selvan and Vaanathi (Sobhita Dhulipala) arrive, bringing peace to the warring factions.Mandakini also infiltrates the fort behind the Pandyas. Mandakini, attempting to reach Sundara Chozhar, takes an arrow intended for him and dies. Hearing his father's grief, Ponniyin Selvan arrives, defeats the Pandya assassins, and kills them.
Madhurantakan flees through a tunnel to the Rashtrakutas.Periya Pazhuvettaraiyar heads to Thanjavur to inform Madhurantakan, but Karuthiruman (Yog Japee), a rower who aided the Pandyas in Lanka, informs him of Nandini and the Pandya plot against Aditha Karikalan in Kadambur.
In an attempt to rescue Aditha Karikalan, Pazhuvettaraiyar hurries back to Kadambur, while the Pandyas use a tunnel to infiltrate the city. Vandiyadevan and Periya Pazhuvettaraiyar, also attempting a rescue, are knocked unconscious.In Kadambur, Aditha Karikalan confronts Nandini, asking why she wants him there. As Nandini falters in her motivation, Aditha, understanding her feelings, requests her to end his life, expressing the pain of being apart from her. Overwhelmed, Nandini cannot bring herself to stab him. Aditha Karikalan takes out his knife, deeply hugs Nandini, and pierces the knife into his heart, revealing his unconditional love for her. Nandini screams in pain, reluctant to see him die despite their complicated relationship. The Pandyas forcefully remove Nandini from Kadambur, saving her from execution. Meanwhile, Vandiyadevan is knocked unconscious and Periya Pazhuvettaraiyar, is taken away by the Pandyas.Upon regaining consciousness, Vandiyadevan carries Aditha Karikalan's lifeless body to Parthibendra Pallavan (Vikram Prabhu) and other kings, who accuse him of murder. Aditha Karikalan's maternal grandfather, Thirukovalur Malaiyaman, seizes Vandiyadevan and Sambuvarayar (Nizhalgal Ravi), the king of Kadambur, suspecting their involvement. Aditha Karikalan's corpse is taken to Thanjavur, where Sundara Chozhar, his family, and the public mourn his tragic demise.
On a ship, the apprehended Karuthiruman reveals to a grieving Nandini that her father is Veerapandiyan, who assaulted Mandakini, leading to Nandini's birth. Feeling betrayed by everyone, Nandini, traumatized by Aditha's death, tragically drowns herself in the river Ponni, expressing her unconditional love for Aditha Karikalan.Parthibendran accuses Ponniyin Selvan of orchestrating Aditha Karikalan's death as he knows that Vandiyadevan is Ponniyin's loyal friend. He allies with the Rashtrakutas and other rival kingdoms to invade the Chola empire for vengeance. Madhurantakan refuses the plan to rule Chola empire by killing Sundara and Ponniyin. He says that he would accept serving under Ponniyin, as he doesn't want the empire with bloodshed. Rashtrakutas overrule Madhurantakan.Nambi informs Chinna Pazhuvettaraiyar of Periya Pazhuvettaraiyar's location, leading to his release from the Pandya captivity. Vandiyadevan faces accusations in Sundara Chozhar's court, but Periya Pazhuvettaraiyar returns, disclosing the truth. Periya Pazhuvettaraiyar admits that he gave away the secrets of his palace due to his attraction to Nandini, which she used to bring Pandyan assassins inside. Sundara Chozhar allows Vandiyadevan to assist Ponniyin Selvan in the impending battle.Madhurantakan refuses to fight against his homeland and sides with Ponniyin Selvan, contributing to the Cholas' victory. Later, Sundara Chozhar decides to abdicate the throne in favor of his only surviving son. However, on the coronation day, Ponniyin Selvan proposes crowning Madhurantakan, who adopts the name 'Uttama Chola.'The epilogue reveals that Vandiyadevan and Ponniyin Selvan led extensive conquests under Uttama Chola's reign. After Uttama Chola's death, Ponniyin Selvan ascends to the throne as 'Rajaraja Chola,' while the Pandyas are captured and punished.