Karna was a son of Kunti by Surya, the sun-god. Once, sage Durvasa visited king Kuntibhoj. During his stay there, the sage was carefully and devotedly served by Kunti, the adopted daughter of the king. Pleased with her service, Durvasa taught her a Mantra, with the help of which she could summon any god and have his child. This Mantra could be used only five times. Kunti, young and curious, wanted to test if the Mantra really worked, and looking at the sun she summoned him. Suddenly a divine person appeared and embraced her. Kunti was scared, but Surya assured her that she would not lose her virginity in spite of the fact that she would give birth to his child. After some time, Kunti gave birth to a son. He was born with golden armour and earrings. Worrying about her reputation as she was unmarried, Kunti put the child in a basket and set it adrift in the river Ganga. The basket was found by the charioteer Adhirath, and because he and his wife Radha were childless, they adopted him as their own son. Though the child was named Vasushen, he was commonly known as Karna, because he was born with earrings.

Karna later studied Dhanurved from Dron and Kripacharya, along with the Pandavs and Kauravs at Hastinapur. Karna wanted to learn the Brahmastra, and when Dron refused to teach it to him, Karna went to learn it from Parshuram, disguised as a Brahman. One day, his master fell asleep on his lap. A bee stung Karna, but fearing to wake his master, Karna bore the terrible pain silently. When Parshuram woke up and saw Karna's leg swathed in blood, he realised that his disciple was no Brahman and asked who he was. Karna, trembling, revealed his identity. Furious at being deceived, Parshuram cursed him that he would not be able to use his knowledge when he needed it most. When the study of the Kaurav and Pandav princes was over, a show was held at Hastinapur to display the talents of each.

Karna duplicated all of Arjun's feats with amazing ease, and left everybody flabbergasted. At that moment, Kripacharya questioned Karna's birth and nobility, and Duryodhan, seeing Karn to be a fitting competitor to Arjun, made him king of Ang. Indra, knowing that Karn was unconquerable as long as he wore his armour and his earrings, decided to take them away from him. Karna was known for his charity, and so Indra went to him in the disguise of a Brahman and asked for his armour and earrings. Surya, knowing Indra's tricks, had warned Karn in a dream, and in case Karna did give away his possessions, he was advised to ask in return for a powerful weapon. Karna could not bring himself to say no to the request of the Brahman, but told him that he could have them on the condition that he did not harm his body. Indra carefully took off the armour and earrings without harming his body, and pleased with Karna's generosity, bade him to ask for a boon. Karna asked for the most powerful weapon that Indra possessed.

Indra gave him his weapon Shakti, saying that he could use it only once and then it would return back to him. When war was declared between the Pandavs and Kauravs, Karna swore to kill Arjun. Kunti fearing for her other sons, went alone to see her first-born before the war. She confessed her relation to him and advised him to join the Pandav army. He refused, saying that he was indebted to his friend Duryodhan and could not forsake him. But he promised his mother that he would not kill any of her sons except Arjun. Karna did not take part in the war till after the death of Bhishma, and was appointed commander-in-chief of the Kaurav army after Dron was slain. Karna had reserved the weapon Shakti which he had received from Indra for Arjun, but was forced to use it on Ghatotkach. Later, in the battle with Arjun, first his chariot wheel got stuck and then Parshuram's curse took affect and he could not use his knowledge. At this moment, Arjun, on the advise of Krishna, killed him. Karna had five sons, viz. Vrishsen, Bhanusen, Prasen, Sushen and Satyasen.