He had been born in an earlier lifetime as a woman named Amba, who was rejected by Bhishma for marriage. Feeling deeply humiliated and wanting revenge, Amba carried out great prayers and penance with the desire to be the cause of Bhishma's death. Amba was then reborn as Shikhandini.
From her birth, a Divine voice told her father to raise her as a son. So Shikhandini was raised like a man, trained in warfare and eventually married. On her wedding night, her wife insulted her on finding out the truth. Contemplating suicide, she fled Pancala, but was saved by a Yaksha who exchanged his sex with her. Shikhandi came back a man and had a happy married life with his wife and had children too. After his death, his masculinity was transferred back to the Yaksha.
In the battle of Kurukshetra, Bhishma recognised him as Amba reborn, and not wanting to fight 'a woman', lowered his weapons. Knowing that Bhishma would react thus to Shikhandi, Arjuna hid behind Shikhandi and attacked Bhishma with a devastating volley of arrows. Thus, only with Shikhandi's help could Arjuna deal a death blow to Bhishma, who had been virtually invincible until then. Shikhandi was finally killed by Ashwatthama on the 18th day of battle.