From the epics · 2 tellings · East India, North India
Ulupi, the princess under the river
On his exile Arjuna is pulled beneath the Ganga by Ulupi, a naga princess, who wins his love by argument and gives him power over every water creature; years later, when his son Babhruvahana kills him, she revives him with a naga gem and tells him it freed him from the curse of the Vasus for Bhishma's death.
North India · Gangadvara, where the Ganga enters the plainsAll traditions
Arjuna, on twelve years' exile, camps where the Ganga comes down to the plains. Bathing, he is dragged under by Ulupi, daughter of the naga king Kauravya, and finds himself in her father's palace with a fire burning, where he finishes his rites. She tells him she loves him. He says he is under a vow; she answers that the vow concerns Draupadi only, and that saving a life is a greater duty, for she will die without him. He stays the night and returns at sunrise, and she gives him a boon: every creature of the water will yield to him.
Years later Arjuna follows the sacrificial horse to Manipura. His son Babhruvahana comes out to welcome him; Arjuna scorns a son who will not fight, and Ulupi rises from the earth and urges the boy to battle. Babhruvahana's arrow kills his father. Ulupi brings a gem that brings dead nagas back, lays it on Arjuna's chest, and he wakes. She explains: the Vasus had sworn to curse him for striking down Bhishma while Bhishma fought Shikhandi, and agreed it would end if his son killed him.
Sources: Mahabharata, Adi Parva, tr. K. M. Ganguli (Project Gutenberg 15474); Mahabharata, Ashvamedhika and Mausala Parvas, tr. K. M. Ganguli (Project Gutenberg 15477)