The movie is narrated by two puppets, voiced by Naseeruddin Shah and his real-life wife Ratna Pathak Shah. Enthusiastic young Lachchi (Rani Mukerji) is to be married to Kishen (Shahrukh Khan), the son of the rich merchant Bhanwarlal (Anupam Kher). Kishen is a dutiful son who honors his father's wish to start a new, far-away business on a predetermined auspicious date, which happens to be the day after the wedding ceremony. On the wedding night, Kishen turns away from his wife to finish his bookkeeping, and in the early morning hours sets off on a business trip that is to last five years. Lachchi is devastated; Gajrobai (Juhi Chawla), her husband's sister-in-law, consoles her, empathizing on the grounds that Gajrobai's husband Sunderlal (Sunil Shetty) has also disappeared. The next day, a ghost appears, having taken Kishen's shape and voice because of his own attachment to Lachchi.
Lachchi is thus presented a riddle (hence the title "paheli") between the representation of all of her desires in the form of the ghost and her real husband. She takes this new, fond, sexual, magical, social, self-confident version of Kishen as hers. As Kishen, the ghost befriends all of the real Kishen's family and keeps Bhanwarlal happy by providing him with magical, possibly illusory, gold coins. His only blunder is in his treatment of the messenger Bhoja, who is perplexed by the idea that Kishen has sent a letter from his business trip only to receive it himself in his own house and offended when the ghost (who appears as Kishen) does not offer him a drink of water. Lachchi's bliss goes on until four years later, when she is pregnant and the real Kishen returns to see if the rumors about his wife's pregnancy are true. He returns to find the ghost in his (Kishen's) own form. Kishen's family is unable to determine which of the doppelgangers is the real Kishen (the ghost refusing to confess). They decide to visit the king so that he can arbitrate. On the way to the king they meet an old shepherd Gadariya (Amitabh Bachchan) who helps them out. He asks the real son of Bhanwarlal to pick up hot coals, asks the real husband to gather the sheep, and asks Lachchi's real paramour to enter a water-bottle. The real Kishen is found out and everyone returns home. Lachchi is devastated over the loss of the ghost. In the very end it is revealed that the ghost has escaped the bottle and taken control of Kishen's body in order to live with her. By now Lachchi has given birth to a daughter, Looni Ma, by whose identification the ghost exposes his identity to Lachchi. The puppets close the film, remarking that the film's plot is "an old story".