The novel alternates between two timelines, "Now" and "Then," revealing the tangled history between former lovers forced into close quarters on a long drive across Britain.
In the present day, Dylan Abbott, a poet and part-time master's student, drives a Mercedes belonging to the father of his best friend, Marcus, toward the Scottish wedding of their mutual friend Cherry. Marcus is attempting a halting apology for an unspecified rift when Dylan recognizes the driver ahead as Addie, his ex-girlfriend. A lorry brakes for a fox, Addie stops behind it, and Dylan rear-ends her Mini. Addie is traveling with her sister Deb and a near-stranger named Rodney, found through a wedding Facebook group. The Mercedes is badly damaged, so Addie reluctantly agrees to give Dylan and Marcus a lift, despite having avoided all contact with Dylan for twenty months since their breakup.
The five passengers squeeze into the Mini. Dylan notices Addie has changed, her hair now cut short and dyed silver-gray, but finds her more beautiful than ever. Tension between Addie and Marcus surfaces immediately. Dylan learns Deb has a baby son and is hurt Addie never told him. She reminds him that she asked for no contact after their split.
The story shifts to "Then." Addie, twenty-one, and Deb are working as caretakers at Villa Cerise, a lavish property in Provence owned by Cherry's parents, during the summer before Addie starts a teacher-training program. Dylan arrives as a solo guest instead of the expected Abbott family. He asks Addie to drive him to a nearby village where he is searching for Grace, a woman he and Marcus had both been involved with. During the drive they flirt, and on the way home Addie strips down to her bikini to win a bet about driving speed.
Over the following week, Dylan and Addie begin a passionate relationship. She shows him her hobby of building model trains with her father; he reads her a love poem he wrote for her. Then Marcus arrives uninvited, immediately telling Dylan he wants Addie. Dylan refuses. Marcus takes Addie aside and tells her she is too complicated for Dylan, implying she belongs with someone more like himself. Addie rebuffs him, and Marcus turns cold.
Cherry and Dylan's friends descend on the villa, including his brother Luke and Grace, who befriends Addie and privately reveals that her involvement with Dylan was never real, just a way to hold Marcus's attention. On their last night together, Dylan tells Addie he loves her. After a moment of panic, she says it back for the first time in her life and tells him to finish his travels and come find her.
Back in the present, the car breaks down on the motorway. Marcus provokes Addie by mentioning Etienne, her former head teacher, a name that causes her visible distress. Dylan snaps at Marcus to stop. During a private walk, Dylan and Addie begin to reconnect; she admits she regrets asking for no contact, and he apologizes for criticizing that decision.
The "Then" timeline tracks Dylan's prolonged absence. He struggles with pervasive dread while traveling through Southeast Asia, worsened by his father's demands that he join the family business. Addie begins her first teaching term, growing anxious about Dylan's vague excuses. He finally surprises her on Guy Fawkes Night and declares he is moving to Chichester. However, Marcus persuades Dylan to live in a cabin on his family's estate instead of with Addie's family. They eventually rent a flat together, but Marcus moves to Chichester too and grows increasingly unstable, drinking heavily and sending Addie hostile messages. Dylan spends more time caring for Marcus, missing plans with Addie. Meanwhile, Etienne begins showing interest in Addie. She recognizes the attraction but tries to dismiss it, even as he offers the emotional support Dylan cannot provide.
The "Then" timeline reaches its crisis. Two days before Christmas break, Etienne invites Addie for wine in his office. When she tries to leave, he pushes the door shut, forces himself against her, and does not stop when she says no. Addie knees him and escapes, running home until her feet bleed. Deb arrives, cares for her, and takes her to the police station. That same evening, Marcus sends Dylan a photograph he took from outside the school showing Etienne's hand on Addie's thigh, along with a message implying Addie is unfaithful. Dylan confronts Etienne, who lies, claiming Addie pursued him all term. Dylan returns to the flat and tells Addie he is leaving. Still in shock from the assault, she tries to explain, but he refuses to listen and walks out.
One week later, Deb tells Dylan the truth. He is physically sick with horror and sits on Addie's doorstep weeping. Addie sends a final message asking him to stop contacting her; she understands why he left but cannot continue. Dylan sinks into severe depression and eventually begins therapy, agreeing only on the condition that Marcus also sees a therapist. He cuts Marcus off for almost a year before they reconnect.
In the present, the group ends up at a Budget Travel Hotel, where Cherry calls with alarming news: Rodney Wiley is not invited to the wedding. He became obsessed with Cherry after a Christmas party and invited himself through the Facebook group. Addie and Deb decide to keep him close until the last moment.
That night, Addie and Dylan meet in the hotel bathroom. She breaks down, saying she forgave Dylan long ago but cannot forgive herself. Marcus walks in and erupts, accusing Addie of hurting Dylan again. The full truth finally emerges. Deb states plainly that Addie did not force herself on anyone. Marcus breaks down and admits he was in love with Addie, confessing that the self-loathing of watching Dylan with the woman he loved drove him to try to destroy their relationship. Dylan says understanding Marcus's love for Addie was the key to forgiving him.
Addie climbs into Dylan's bed, and they fall asleep holding hands. In the morning, Kevin, a lorry driver who helped them during the earlier breakdown, drives the group to Scotland in his cab. At the wedding venue, an elaborate castle, Dylan's father, Miles, approaches across the lawn. Marcus steps forward and confronts him, calling Miles a "spineless, bigoted bully" and declaring Addie "a better person than you or I could ever be" before quitting the job Miles had offered him. Addie tells Miles they will not be seeing much of each other and leads Dylan away. The group intercepts Rodney in the bridal suite, where he is begging Cherry not to marry her fiancé, Krish. Cherry calmly tells Rodney she never loved him, and the group restrains him. Dylan's brother Luke arrives with news that their mother has finally left Miles, refusing to pretend any longer.
In a quiet corridor, Dylan and Addie confront their past fully. Addie admits she had a crush on Etienne and struggles with guilt about the flirting that preceded the assault. Dylan tells her that what matters is what she actually did: She said no and walked away. He asks her to try again, confessing he never stopped loving her. She says she never stopped either. They agree to start over slowly, beginning not with physical intimacy but with everything else.
Cherry and Krish marry in an adapted Hindu ceremony on the castle rooftop. Grace, healthy after rehab, reconnects with Marcus, who delivers the apology she has long awaited. On the dance floor, Dylan asks Addie where she stands on kissing. She closes the distance between them, and they share their "second first" kiss, choosing each other again.