Hazel Grace Lancaster is a teenager living in Indianapolis, who has terminal thyroid cancer that has spread to her lungs. Believing she is depressed, her mother Frannie urges her to attend a weekly cancer patient support group to help her make friends with individuals who are going through the same thing. There Hazel meets Augustus Waters, a charming teenager who lost a leg from bone cancer but has since apparently been cancer-free. He invites Hazel to his house where they bond over their hobbies and agree to read each other’s favorite book. Hazel recommends An Imperial Affliction, a novel about a cancer-stricken girl named Anna that parallels her experience, and Augustus gives Hazel Counter Insurgence. They keep in touch via text over the weeks that follow and grow closer. After Augustus finishes the book, he expresses frustration with its abrupt ending (it ends in the middle of a sentence). Hazel explains that the novel’s mysterious author, Peter Van Houten (Willem Dafoe), retreated to Amsterdam following the novel’s publication and has not been heard from since.
Weeks later, Augustus tells Hazel he has traced Van Houten’s assistant, Lidewij, and has corresponded with Van Houten by email. She writes to him to find out more about the novel’s ambiguous ending. Van Houten replies that he is only willing to answer her questions in person. Hazel asks her mother if she can travel to Amsterdam to visit him, but Frannie refuses because of financial and medical constraints. Augustus suggests that she use the “cancer wish” she received from Make-A-Wish Foundation but Hazel explains that she has already used hers to visit Disney World. Augustus and Hazel go on a picnic date and begin to fall in love. Augustus surprises Hazel with tickets to Amsterdam. After a medical setback, Hazel’s doctors eventually agree to allow the trip, since they expect that she will soon become incapable of doing anything at all.