On a stormy night Devendra (Dilip Kumar) an engineer drives down a hill road with his friend to fetch his wife and child from the railway station. A landslide blocks their path and the friends take shelter in an old mansion just off the road. Devendra finds the house uncannily familiar. In the large front room he finds an old portrait which he recognizes. His friend and the old caretaker join him and Devendra amidst flashes of memory from another life sits down to tell his story while the storm rages outside. Anand (Dilip Kumar) had come to Shyamnagar Timber Estate as its new manager. An artist in his spare time he roamed the hills and forests with his sketching pad and fell in love with Madhumati (Vyjayantimala) a tribal girl whose songs have haunted him from a distance. Soon Anand meets his employer Ugranarayan (Pran) a ruthless and arrogant man. Anand refuses to bend down to him like the others and incurs his wrath. Anand also has enemies among his staff who have been fudging the accounts till his arrival. Sent away on an errand suddenly he returns to find that Madhumati has disappeared. Anand learns from Charandas how Madhumati had been taken to Ugranarayan in his absence. He confronts Ugranarayan whose men beat him unconscious. Anand`s life is saved but his mind wanders. One day in the forest he meets a girl who looks exactly like Madhumati. She says she is Madhavi (Vyjayantimala) but Anand refuses to believe her and is beaten up by her companions when he tries to plead with her. Madhavi finds a sketch of Madhumati in the forest and realizes he was speaking the truth. She takes the sketch to the rest house where Anand now stays and learns his story from Charandas. Meanwhile Anand is haunted by the spirit of Madhumati who tells him that Ugranarayan is her killer. Seeing Madhavi at a dance recital where she dresses as a tribal girl he appeals to her to pose as Madhumati and appear before Ugranarayan and help him get a confession out of him. She agrees.
Returning to Ugranarayan`s palace Anand begs permission to do a portrait of him. Next evening with a storm brewing outside Anand paints Ugranarayan. At the stroke of eight Ugranarayan sees the pretend-Madhumati in front of him. Shaken and goaded by the pretend-Madhumati he confesses the truth. The police who have been waiting outside the room now come and take him away. Anand suddenly realizes that the questions ``Madhavi`` asked were on matters unknown to him. How could Madhavi know where Madhumati was buried? ``Madhavi`` just smiles and moves towards the stairs. Now the real Madhavi dressed as Madhumati rushes into the room. She is late for the car failed on the way. Anand realizes that Madhumati`s ghost had made an appearance and runs up to the terrace where the ghost beckons to him. Madhumati had fallen from the same terrace trying to escape Ugranarayan. Anand follows the ghost falling to his own death. Devendra`s story is over. ``But`` he says ``I finally did have Madhumati as my wife. In this life-Radha.`` Just then news arrives that the train in which his wife was traveling has met with an accident. The road the friends were to take is cleared and then they rush to the station. From one of the coaches Devendra`s wife Radha (Vyjayantimala) appears unhurt with her baby.