After vanquishing the Kalakeyas, Amarendra Baahubali is declared as the future king of Mahishmati and Bhallaladeva (Rana Daggubati) is declared as the commander-in-chief. Before the coronation, Rajamatha Sivagami (Ramya Krishnan) begins to look for a bride for Amarendra. She instructs Amarendra and Kattappa to tour the kingdom to understand its current state and its people.
Amarendra falls in love with Devasena (Anushka Shetty), a princess of the Kuntala kingdom (7.5 yojanas to the North of Mahishmati) and the sister of the king of Kuntala. Bhallaladeva learns of Amarendra's attempts to woo Devasena and hatches a plot to drive a wedge between Amarendra and Sivagami by asking for Devasena's hand in marriage for himself. Sivagami, unaware that Amarendra is in love with Devasena, promises Devasena's hand in marriage to Bhallaladeva.
Sivagami sends an emissary to the kingdom of Kuntala, who delivers the marriage proposal in a patronising way. An insulted Devasena rejects the proposal with a scathing reply. Sivagami is enraged to hear Devasena's response and sends an order to Amarendra that Devasena be brought to Mahishmati as a captive.
The kingdom of Kuntala is attacked by Pindaris, a dacoit-like army. Amarendra, with the help of Devasena's maternal uncle, Kumara Varma (Subbaraju), is able to nullify the attack and save Kuntala. Amarendra reveals who he is, promises Devasena that he will protect her honor no matter what and convinces her to come with him to Mahismati as his future bride.
Upon reaching Mahismati, the misunderstanding comes to light. When Sivagami delivers an ultimatum to Amarendra that he must either choose the throne or Devasena, he chooses Devasena. Bhallaladeva is crowned king and Amarendra is made the new commander-in-chief. During the coronation ceremony the citizens of Mahishmati clearly display their preference for Amarendra over Bhallaladeva.