The novel opens on a June morning in Cambridge, England, when a jogger's Border Collie leads its owner to a woman's naked, bruised body lying face-down on Stourbridge Common, her skull caved in. The story rewinds to the previous evening.
Toni Jones, a vain, judgmental woman who founded a local all-women's book club, leaves the bungalow she shares with her husband, Gerald Jones, a doting mortgage advisor ten years her senior. She heads to the club's weekly Thursday meeting, hosted by Marion Bolton. Among the attendees are Kim Geller, Toni's outspoken friend; Barbara Lipton, a quiet, long-widowed pensioner; Shirley Grubb, a care home worker; Janet Cox, who works at a bookmakers and is Shirley's closest friend; and Pauline Robinson. Toni is in a combative mood, sniping at Kim repeatedly until Kim storms out. Janet and Toni then exchange vicious insults before Toni declares the meeting over. Amy Martin, a pregnant aspiring writer, and her close friend Maggie Barnsdale arrive just as the confrontation ends.
The next day, Marion and Barbara fear the body on the common may be Kim, who did not return home. They are relieved to learn Kim spent the night at a friend's house after getting drunk and losing her phone. The unidentified body, however, still belongs to someone. Detective Chief Inspector (DCI) Barrett and Detective Inspector (DI) Palmer visit Gerald to inform him they believe the body is Toni's. Gerald is devastated. At the station, he provides an alibi: Firemen knocked on his door around 9:30 p.m. after damaging his parked car. He reveals Toni's final words to him were that he was "a waste of space." Barrett finds Gerald's behavior uneven but acknowledges the alibi appears solid. Forensics later confirm the body is Toni's.
Kim organizes an emergency gathering at Amy's house, where old tensions erupt. Amy accuses Shirley and Janet of being insincere friends to Toni. Marion and Barbara leave in disgust. Afterward, Amy tells Maggie she is quitting the book club for good.
Barrett and Palmer interview Mike Williams, Toni's first husband, who reveals that their marriage ended because Toni had an affair, not because of his supposed alcohol problem, as she had told everyone. Mike refuses to name the other man. Forensic results confirm Toni died around 7 p.m. on June 21 from repeated blunt force trauma, likely inflicted with a metal object. No sexual assault occurred, yet the body was stripped naked and deliberately posed. Red horseshoe geranium petals, symbolizing foolishness, were planted in the victim's hair, suggesting premeditation and a message of contempt.
Kim gives a voluntary statement describing the book club argument. Marion then reveals a bombshell to the detectives: Toni had recently had an abortion. Marion learned this through Erica Clutterbuck, her son Harry's girlfriend and a nurse at the clinic. Toni told Marion the baby was not Gerald's and that she had been raped, though she refused to name her attacker. When asked about the affair that ended Toni's first marriage, Marion deflects.
Meanwhile, Pauline confides in Janet that she is in serious financial trouble. She and Toni were supposed to be partners in a mobile Kindle library business, but Toni backed out after Pauline had taken on roughly £34,000 in debt. Detectives discover threatening messages between the two women on Toni's computer and arrest Pauline. However, CCTV footage shows Pauline's car on Huntingdon Road at 6:37 p.m., proving she could not have reached the common by 7 p.m. She is released. Separately, Shirley and Janet quietly agree to give each other false alibis, claiming they were together after the book club, though both were actually alone.
Days later, a second body is found in the River Cam near Magdalene Bridge: Janet Cox, her skull fractured and bruising visible on her neck. Barrett declares the case is no longer a single murder investigation and orders every book club member re-interviewed.
Under pressure, Marion finally reveals the identity of the man who had an affair with Toni during her first marriage: Grant Grubb, Shirley's husband. Marion explains she discovered this when Shirley brought Grant to the book club's Christmas party and Toni reacted strangely. Marion kept the secret to protect the Grubbs' marriage. Barrett interviews Grant, who admits to the affair but describes it as brief. He denies fathering the aborted child and insists Shirley knows nothing.
Amy receives a threatening note pushed under her door reading "YOU'RE NEXT." She calls her husband, Johnny Martin, who is in Scotland after Amy kicked him out upon learning he once had a one-night stand with his ex-girlfriend. Johnny speeds toward Cambridge but crashes on the M1 motorway near Nottingham, suffering a punctured lung and broken arm. Maggie and Marion travel to the hospital to support Amy through the ordeal. Johnny survives two surgeries and stabilizes.
Barrett and Palmer interview Shirley at Parkside police station. She is defensive and hostile, offering minimal details about the book club evening and claiming no knowledge of the threatening note. The case breaks open when Detective Sergeant (DS) Singh accesses Janet's iCloud account and discovers video footage of Shirley killing Toni. Janet had been secretly recording Shirley, driven by an unrequited love revealed through the recordings. Barrett and his team race to find Shirley.
Shirley is visiting Kim, who reveals that Kayla, Shirley's adopted daughter, has been telling classmates that Grant slept with Toni, got her pregnant, and killed her. Shirley grows agitated and then confesses everything. She discovered Grant's affair through text messages on his phone, learned about the pregnancy, impersonated Grant by text to pressure Toni into getting an abortion, and then planned Toni's murder. She lured Toni to Stourbridge Common the night of the book club by pretending she needed support. When Toni claimed Grant had raped her, Shirley, enraged and disbelieving, beat her to death with a wrench, stripped and posed the body to humiliate Toni and mislead investigators, and planted the geranium petals to suggest a serial killer. Shirley also confesses to killing Janet, who had witnessed the murder and told Shirley so, professing her love and promising silence. Shirley could not risk exposure and struck Janet with a dead sycamore branch by the river before pushing her into the water. As Shirley raises a wine bottle to attack Kim, Barrett, Palmer, and uniformed officers burst through the front door. The bottle grazes Kim's shoulder, leaving a deep gash, but Kim survives. At the station, Shirley gives a full confession, acknowledging the threatening note sent to Amy but refusing to elaborate.
Three weeks later, Amy prepares for Johnny's homecoming. The couple have reconciled. Amy hosts Marion and Maggie for lunch and asks them to be the baby's godmothers; both tearfully accept. The women reflect on the aftermath: Janet's secret recordings, Grant being investigated for the alleged rape, and the book club's permanent dissolution. Marion observes that one must pick friends carefully. Amy, resting a hand on her belly, affirms that everything is fine.