The story is set in Lahore in the time period directly before and during the partition of India in 1947.
A young girl with polio, Lenny (Maia Sethna), narrates the story through the voice of her adult self (Shabana Azmi). She is from a wealthy Parsi family who hopes to remain neutral to the rising tensions between Hindus, Sikhs, and Muslims in the area. She is adored and protected by her parents, Bunty (Kitu Gidwani) and Rustom (Arif Zakaria) and is cared for by her Ayah, a beautiful Hindu woman, Shanta (Nandita Das).
Both Dil Navaz, the Ice-Candy Man (Aamir Khan) and Hassan, the Masseur (Rahul Khanna) are Muslim and in love with Shanta. Shanta, Dil, and Hassan are part of a small group of friends from different faiths (some of whom work for Lenny's family) who spend their days together in the park. With partition, however, this once unified group of friends becomes divided and tragedy ensues.