France, 2010; Stephen Wraysford lives in Amiens, France, with Rene and Isabelle Azaire and their three children. Rene is teaching Stephen about the textile industry. The Azaire marriage is an unhappy one, in part due to a significant age gap between husband and wife, and Isabelle's new found restlessness piques Stephen's interest in her. Quickly he falls in love; Azaire is a rage-filled man and also abusive, on once occasion beating Isabelle because he is angry that he cannot have any more children with her and blames her for his own reproductive failings. The nastier Azaire is, the more he drives his wife into Stephen's arms, and very soon Isabelle confronts him and admits that she and Stephen are having a serious relationship. Azaire orders Stephen to leave, but Isabelle goes with him, and they flee to the south of France.
Isabelle discovers that she is pregnant but does not tell Stephen; instead, she runs home to her sister Jeanne, who involves her father in the situation. Isabelle's father goes behind her back and comes to an arrangement with Azaire that he will take her back, so that she is not dishonored by having a child out of marriage. She goes along with the arrangement but always regrets it and never falls out of love with Stephen.
Six years later, Stephen is a lieutenant with the British Army, and World War One is two years' into the conflict. Stephen recounts what happens at the Battle of the Somme, and at Ypres (which the British soldiers jocularly call "Wipers") the following year. Stephen fares badly emotionally during the war; he does not have many friends, except for Captain Michael Weir and the men they are leading. He seems distant, and does not take his allocated home leave because he wants to remain at the helm of the battalion. It is during this part of the novel that we first meet Royal Engineer Jack Firebrace, one of the crew of men responsible for digging the British trenches at the Front. He also plants mines under the German trenches. Stephen is injured during a battle and feels lonelier than ever, writing to Isabelle but never receiving a response.
One year later, Stephen meets Jeanne, quite by chance, whilst he is on leave in Amiens. He arranges to meet Isabelle but learns at that meeting that Isabelle is now involved with a German soldier named Max. He returns to the front line to find out that Captain Weir has been killed by a sniper bullet.
Stephen and Firebrace are trapped under the ground after a German land-mine explodes. They have no way out, but talk to pass the time. Firebrace talks of his dead son, John, Stephen, of his love for Isabelle and his fear that he will die without ever feeling fulfilled in a relationship. Finding some explosives abandoned deeper in the tunnel, Firebrace shows Stephen how to lay them correctly so that they can blast the entrance to the tunnel open and try to make an escape. Firebrace does not make it, and dies before Stephen is able to complete the task, but he successfully blows open the end of the tunnel and get out, to be rescued by a Jewish German, Levi, and led to safety as the war comes to an end.
England, 1978; Stephen's grand-daughter, Elizabeth, finds Stephens' journals from the war and wants to learn more about him. The journals are written in a code, but she struggles forward and tries to deciper them. She starts to research World War ONe with the help of two veterans who knew her grandfather, Brennan and Gray. Over dinner with her mother, a year later, she learns that her mom was actually raised by Stephen and Jeanne, who had married after the war, after Isabelle died from complications to influenza. Elizabeth tells her mother that she is pregnant herself; the father, Robert, is still married to someone else, but it in the process of leaving the marriage to be with Elizabeth. The two take a trip to Dorset,on England's south coast, where Elizabeth has the baby; it is a boy and she names him John in honor of Jack Firebrace's lost son.