Frances McCullen (Chloë Grace Moretz) is a young American waitress living a quiet life in New York City with her friend and roommate Erica Penn (Maika Monroe). Having recently lost her mother to cancer, Frances maintains a strained relationship with her workaholic father Chris (Colm Feore).
While on the subway, Frances finds a handbag belonging to a supposedly French woman named Greta Hideg (Isabelle Huppert), a piano teacher who gives her students private lessons. Finding her address, Frances returns the handbag to Greta. After accepting to have coffee, Frances learns that Greta is a widow whose daughter is studying in France.
Frances begins to spend time with Greta to keep her company. Then, one night while at her house preparing dinner, Frances finds handbags identical to the one she found on the subway. The bags have addresses and names of people Greta knows, including Frances. Disturbed, Frances decides to cut ties with Greta.
Soon after, Greta begins to stalk Frances, texting and calling her repeatedly. On certain occasions, Greta is also seen standing outside of the restaurant Frances works at. When Frances calls the police, she is told to ignore her as she is on public grounds. Greta even stalks Erica, sending Frances pictures of her out and about. Eventually, Frances coldly tells Greta not to harass her or Erica after Greta shows up to their apartment. This is made worse when Greta shows up at Frances’ shift, insulting her and causing a scene before she is thrown out and taken to the hospital. Erica and Frances pursue a restraining order, but are told that it could take months to get a hearing.
Erica meets up with her father, with him telling Frances to cut Greta out of her life. Meanwhile, Frances indirectly finds out that Greta was released from the hospital and also learns that Greta's daughter committed suicide, indicating that she had never gone to France. Frances is torn to either go away with her father or go with Erica out of the country, but Frances does not want to have to leave because of Greta’s behavior. Erica suggests lying to Greta and to say she is leaving to address her own issues; Frances follows this advice.
The next day, Frances is kidnapped by Greta and brought to her home where she is placed in a secret room via a large wooden box. While there, Greta uses Frances' phone to text Erica and Chris to tell each of them that Frances was with the other using photos found on her phone. When Frances is released from the box, she finds articles of clothing and IDs from the other girls listed on the handbags.
By the time Erica and Chris learn Frances was not with either of them, she has been kept with Greta for an indefinite amount of time, forced to learn piano and fluent French. During a lesson, Frances cuts off Greta's finger with a cookie cutter, and uses the rolling pin she is holding to knock Greta unconscious. Frances tries to escape, heading into the basement only to find one of Greta's victims in a bag, still alive. Greta then reemerges and wraps a bag around Frances' head until she passes out.
Chris hires Brian Cody (Stephen Rea), an Irish private investigator who is a friend of the family. Brian explains to Chris that Greta was a nurse who was let go for abusing sleeping medication and further explains that Greta was supposed to be in Hungary, where she is actually from. Brian visits the home to meet with Greta. Meanwhile, Frances attempts to get his attention by thrashing her body and causing the metronome on top of the piano to activate. Brian eventually figures out that there is a secret room behind the piano despite Greta attempting to block off the noise, only to be tranquilized and eventually shot by Greta with his own gun.
An indefinite amount of time passes before Greta leaves another handbag for an unsuspecting victim on the subway. The victim brings the handbag to Greta's home and is allowed inside by Greta. Frances attempts to get their attention, but is unsuccessful. After Greta drinks the coffee, she finds out it’s spiked and passes out as a result. The victim takes off her wig and reveals herself as Erica. Erica rescues Frances before they place Greta’s motionless body in the box and leave. The film ends as Greta wakes up inside the box and starts banging on it, causing the make-shift lock to move.