The film begins with the sentencing of Jean-Baptiste Grenouille (Ben Whishaw), a notorious murderer. Between the reading of the sentence and the execution, the story of his life is told in flashback, beginning with his abandonment at birth in a French fish market. Raised in an orphanage, Grenouille grows into a strangely detached boy with a superhuman sense of smell. After growing to maturity as a tanner's apprentice, he makes his first delivery to Paris, where he revels in the new odors. He focuses on a girl selling plums (Karoline Herfurth) and startles her with his behavior. To prevent her from crying out, he covers the girl's mouth and unintentionally suffocates her. After realizing that she is dead, he strips her body naked and smells her until the scent fades. Afterwards, Grenouille becomes haunted by the desire to preserve a woman's scent forever.
After making a delivery to a perfume shop, Grenouille amazes the Italian owner, Giuseppe Baldini (Dustin Hoffman), with his ability to create fragrances. He revitalizes the perfumer's career with new formulas, demanding only that Baldini teach him how to convert scents into perfume. Baldini explains that all perfumes are harmonies of twelve individual scents, and may contain a theoretical thirteenth scent. He also tells a story about a perfume discovered in an Egyptian tomb that was so perfect that it caused everyone in the entire world to briefly believe they were in paradise the moment the bottle was opened. When Grenouille discovers that Baldini's method of distillation will not capture the scents of all objects, such as iron chains and dead animals, he becomes depressed. After receiving a letter of presentation written by Baldini, Grenouille leaves to learn a different method in Grasse. En route to Grasse, Grenouille realises that he has no scent of his own, and is therefore a cipher. He decides that creating the perfect smell will prove his worth.
Upon arrival in Grasse, Grenouille catches the scent of Laura Richis (Rachel Hurd-Wood), daughter of the wealthy Antoine Richis (Alan Rickman) and decides that she will be his "thirteenth scent", the linchpin of his perfect perfume. Grenouille finds a job in Grasse under Madame Arnulfi (Corinna Harfouch) and Dominique Druot (Paul Berrondo) assisting with perfumes and learns the method of enfleurage. He kills a lavender picker and attempts to extract her scent using the method of hot enfleurage, which fails. After this, he tries the method of cold enfleurage on a prostitute and successfully preserves the scent of the woman. Grenouille embarks on a killing spree, murdering beautiful young girls and capturing their scents. He dumps the women's naked corpses around the city, creating panic. After preserving the first twelve scents, Grenouille plans his attack on Laura. During a church sermon against him it is announced that a man has confessed to the murders. Richis remains unconvinced and flees the city with his daughter. Grenouille tracks her scent to a roadside inn and sneaks into her room that night. The next morning, Richis discovers Laura lying dead in her bed.
Soldiers capture Grenouille moments after he finishes preparing his perfume. On the day of his execution, he applies a drop of the perfume over himself. The executioner and the crowd in attendance are speechless at the beauty of the perfume; they declare Grenouille innocent before falling into a massive orgy. Richis, still convinced at Grenouille's guilt, threatens him with his sword, before being overwhelmed by the scent and embracing Grenouille as his "son". Eventually, the town awakens and decides that the godly Grenouille could not have been the murderer. Druot is convicted for the murders and hanged, since it was his backyard where the clothes and hair of the victims were found.
Walking out of Grasse unscathed, Grenouille has enough perfume to rule the world, but has discovered that it will not allow him to love or be loved like a normal person. Disenchanted by his aimless quest and tired of his life, he returns to Paris. Back in the city, Grenouille returns to the fish market where he was born and dumps the perfume on his head. Overcome by the scent and in the belief that Grenouille is an angel, the nearby crowd devours him. The next day, all that is left are his clothes and the open perfume bottle, from which one final drop of perfume falls.