On the 17th day of the Kurukshetra war, Arjun killed Karna’s son Vrishasena. Arjun wanted Karna to understand the pain of losing one’s child. Karna however was not affected. He refused to stop fighting even a moment to grieve over this loss. He continued to fight.
Prior to this, during the construction of Indrapastha, Arjuna had burned down the entire forest of Khandav-vana. A countless animals had died in that process. A snake named Ashvasena had escaped and had seen his mother burned alive in that fire. The snake had vowed revenge on Arjuna.
When Arjuna and Karna came face to face ready to battle each other the snake Ashvasena appeared on the battlefield and entered Karna’s quiver (where the arrows are stored) and took form of an arrow. Ashvasena was a mighty snake and had waited to kill Arjuna for a long time. During the battle Karna fired this arrow on Arjuna not knowing it was such a powerful arrow.
Krishna however knew that this was an exceptional arrow. Arjuna could not stop the arrow but Krishna pressed the chariot down with the thumb of this right foot. The chariot wheel sank into the ground and the arrow missed Arjuna’s head at the very last moment, destroying Arjuna’s headgear.
The snake, now embarrassed returned to Karna and requested that he be fired again. Karna refused saying
It is beneath my stature as a warrior to shoot the same arrow twice. Find some other way to avenge your family’s death.
Ashvasena then tried to kill Arjuna but failed miserably.
Karna was a honorable warrior.