A young woman befriends a lonely widow who’s harboring a dark and deadly agenda toward her.
A New York City waitress named Frances McCullen (Chloë Grace Moretz) finds a handbag on the subway belonging to a French woman named Greta Hideg (Isabelle Huppert). The two become friends for a brief moment, as they see each other as surrogates for their lost ones (Frances’s mother and Greta’s daughter), but Frances cuts ties with Greta after seeing that she keeps other identical handbags and plants them for unsuspecting young women to find. Greta starts to stalk Frances, culminating in her making a terrifying scene at the restaurant where she works before she is arrested.
Frances tries to make peace with Greta and tells her she is going away. Greta breaks into Frances’s apartment, drugs her, and then kidnaps her, bringing her to her home and keeping her hostage. Frances’s friend Erica (Maika Monroe) and her father Chris quickly realize Frances has been abducted. Chris has a detective go find his daughter. The detective finds Greta’s home, but she kills him before he finds Frances.
Erica manages to turn the tables on Greta as she comes across another handbag that Greta left behind. She drugs Greta and finds Frances. Greta attempts to attack, but she passes out. The ladies lock her in her own toy chest, but the ending indicates that it won’t hold Greta for long before the police can show up.
The film starts in New York City where a waitress, Frances McCullen (Chloe Grace Moretz), is going home from work on the subway where she finds a handbag left by a French woman named Greta Hideg (Isabelle Huppert). Frances travels to the address on Greta’s card to return the bag, but when she arrives, nobody is home.
Frances lives with her best friend and roommate Erica Penn (Maika Monroe). Frances holds onto the bag until she can return it, and Erica goes through its contents. Later, they go to a movie, but it makes Frances emotional because she used to go to the movies with her mother, who has passed away from cancer not too long ago. Her relationship with her father Chris (Colm Feore) is a bit strained as he has already moved on from his wife’s death and buries himself in his work.
Frances returns to Greta’s home and meets her. Greta is thankful for the return of the bag, and she invites Frances inside for some coffee. Greta is a piano teacher, and she plays some music for Frances as she tells her about her family. Her husband has long since passed away, and her daughter Nicola is said to live in Paris. Sensing that Greta is lonely, Frances offers to help her find a dog for support. Greta declines but thanks Frances before she leaves, and Frances leaves Greta her number if she changes her mind. Sure enough, Greta calls Frances later that night to take her up on the dog, and the two go later that weekend to get an old dog named Morten.
Over the next few days, Greta continues to contact Frances, and the two strike up a small friendship. Erica is suspicious of Greta and figures that Frances is only using her as a maternal substitute, but Frances is offended by that suggestion. Frances goes over to Greta’s home for dinner. Frances goes to look for glasses in Greta’s cabinet, only to make a startling discovery – multiple identical handbags with the exact same contents inside every one of them. One has a sticky note with the number for a woman named Samantha Bales, and another has Frances’s name and number. Frances becomes uncomfortable during dinner and excuses herself to leave. She goes home and tells Erica what she found.
Greta attempts to get things back to normal, even though Greta continues to try and contact her. She even visits Frances at work to talk to her, but when her boss won’t get rid of Greta himself, Frances confronts her about finding the other handbags and not wanting to be part of whatever crazy game Greta has planned. Frances tells Greta she never wants to see her again.
Greta continues to harass Frances. She stands outside the restaurant to stare at her for hours even after the police arrive. Because Greta has not made any threats or any indication that she will attack, they cannot do anything, and the responding officer tells Frances to just ignore her.
Things get worse when Frances is at home while Erica is out. Greta sends Frances pictures of Erica at her exact location, meaning Greta is stalking Erica. Frances stays on the phone with Erica until she gets somewhere safe while Frances tries to find her. Greta continues to send Frances pictures to show she is getting closer and closer to Erica, even following her onto the bus. Erica spots Greta and tells her she’s sick. She runs out of the bus and manages to find the cab that Frances is in, and she joins her. The two head to file a restraining order against Greta.
Frances attempts to find a way to get Morten away from Greta for fear of his safety. She goes by Greta’s home and digs through the trash for anything she can find on her. Inside is an envelope addressed to Nicola, but not in Paris, and it was returned to the sender. Frances then makes attempts to get in touch with Nicola. After a couple of days, Frances is contacted by an officer named Alexa Hammond (Zawe Ashton), who tells Frances that Nicola committed suicide four years earlier and had never been to France. Alexa also reaffirms that Greta is a very ill woman after Frances tells her what she heard, and adds that Greta is not French, but Hungarian.
One night at the restaurant, Frances must tend to Greta, who made a reservation. Greta insists she only wants to talk, but she instead torments Frances by causing a scene. She smashes a drinking glass and then brings up Frances’s mother, claiming she had to die for them to meet. Greta flips over her table and starts advancing toward Frances, who runs to the kitchen. Greta is then restrained by staff and patrons as the police arrive to take her away. However, Frances learns that Greta has been released the next day.
Frances makes plans to stay with her father for safety. She decides to finally talk to Greta and tell her she is going away for a while. Greta gives her a long, unsettling hug. Later, Frances is having a drink at home when she starts to feel dizzy. Greta emerges, having drugged the drink, and she chastises Frances for supposedly lying about going away. Greta drags Frances to her home and locks her in a toy chest. Frances then wakes up, apparently having dreamt that, and finds Erica in her apartment with her. She goes to the elevator to leave, but the elevator appears to be going lower than the bottom floor, and the walls start closing in on Frances. It turns out THAT was a dream, and Frances really is locked in a toy chest. She screams to be let out, and Greta goes to do so, making it seem as a punishment for lying.
Greta takes Frances’s phone and makes Erica believe that Frances is on vacation with her father, while also making Chris think she is on vacation with Erica. Frances is kept for an unspecified amount of time (implied to be weeks) kept hostage by Greta. One afternoon, Greta is forcing Frances to help make cookies, but as she fiddles with a cookie cutter, Frances slams a rolling pin down, severing Greta’s pinky, before Frances whacks Greta over the head with the pin. She runs to find an escape, but the doors and windows are locked. She runs to the basement and finds the body of Samantha Bales, who appears to gasp and convulse briefly before finally dying. Greta then suffocates Frances until she passes out. Greta then ties Frances to a bed and keeps her trapped in the wall space behind the piano.
Chris goes to the ladies’ apartment and sees Erica. They both mention the supposed vacations, which quickly leads both of them to realize something is wrong. Chris speaks to Detective Brian Cody (Stephen Rea) to help find Frances. Cody pulls up files on Greta, revealing that she was a nurse who mistreated and possibly killed patients, and it was believed she returned to Hungary.
Cody finds Greta’s home and sits down for a chat. Frances hears Cody mention her name, and she tries to get his attention by banging on the bed and making the pendulum on the piano start ticking. Cody goes over to the piano, but before he can reach Frances, Greta comes running in barefoot and injects Cody with some kind of sedative. He attempts to shoot Greta, nearly hitting Frances, but he falls and passes out. Greta then takes his gun and kills him with the remaining bullets, and she dumps his body in a bag with a chemical and throws him in the basement.
Greta then goes back to the subway to find her next victim. A young woman with curly brown hair (only viewed from the back) arrives at her home. They chat, and Greta steps away for a moment and returns to have her coffee. She then starts to feel disoriented. The woman reveals herself to be Erica, having been scouring the subways for a handbag until she found Greta. She pulls off her wig and tells Greta that she drugged her just like she did Frances. As Greta faints, Frances tries to get Erica’s attention by hanging on the piano and setting off the pendulum. Erica pulls the piano back and frees Frances. The two embrace, but as Erica tries to get Frances out, they hear music playing, which means Greta is lurking. Erica steps out to find her, but as Frances steps out, she feels Greta grab her by the throat and say that she was her favorite one. Greta then passes out, and Erica prepares to bludgeon her, but Frances stops her and says she has a better idea.
The two place Greta in the toy chest and keep it locked with an Eiffel Tower trinket. As the ladies leave, Greta slowly starts bumping the lid of the chest, and the trinket slowly starts moving out.