As the Great War (World War I) begins, 17-year-old Jack Kipling (Daniel Radcliffe), the only son of the famous English writer and poet Rudyard Kipling, declares his intention to join the Royal Navy to fight against the Germans. The elder Kipling (Haig), who encourages him in his ambition, arranges several appointments for him to enlist in both the Army and Navy. However, when Jack's poor eyesight prevents him from passing the medical examinations, both he and his father are devastated. Determined, Rudyard uses his influence with the military establishment to eventually secure Jack an officer's commission as a Second Lieutenant in the Irish Guards.
Jack's mother, Carrie (Cattrall), and his sister, Elsie (Carey Mulligan), disapprove of this post, as they do not wish for him to go to the war. Jack, who proves to be a popular officer with his troops, undergoes military training and travels to France within six months. On his 18th birthday, Jack receives orders to lead his platoon into action on the following morning. During the Battle of Loos, Jack is posted missing in action and the Kipling family is informed by telegram. For three years, Jack's parents track down and interview surviving members of his platoon. One eventually confirms that Jack was killed in the Battle of Loos, shot by enemy gunfire, after losing his glasses in the mud during an assault on a German machine-gun post.