Murphy “Barfi” Johnson (Ranbir Kapoor) is an optimistic, street-wise, charming young man who was born deaf-mute to a Nepali couple in Darjeeling. His mother died when he was a baby and his father raised him alone, while working as a chauffeur. Barfi is known as a troublemaker – he cuts lampposts, plays practical jokes on innocent people, and is chased by Sudhanshu Dutta (Saurabh Shukla), a local police officer. Barfi meets Shruti Ghosh (Ileana D’Cruz), who has just arrived in Darjeeling; she is engaged to Ranjit Sengupta (Jisshu Sengupta), and is due to get married in three months, and Barfi is immediately smitten with Shruti. She also falls in love with Barfi but her mother dissuades her from pursuing him because he could not take care of her with his disabilities and lack of money. Shruti takes her mother’s advice, gets married, and moves to Kolkata, breaking all contact with Barfi.
Meanwhile, Barfi’s father falls ill and Barfi must somehow raise the money for his treatment. After an unsuccessful attempt to rob a local bank, he tries to kidnap Jhilmil Chatterjee (Priyanka Chopra) – Barfi’s autistic childhood friend and wealthy heiress of her grandfather’s fortune – for a ransom. Upon arriving, Barfi finds she has already been kidnapped. He sees her in a van, sneaks inside and drives Jhilmil away from the ransom delivery. He hides her in his apartment with the police in pursuit. Barfi collects the ransom but finds that his father has died just as he makes the payment. Dejected, Barfi tries to leave Jhilmil at the village of her caretaker, but she refuses to leave him and they soon move to Kolkata, where Barfi assumes responsibility for Jhilmil and takes care of her.