Villette begins with its famously passive protagonist, Lucy Snowe, age 14, staying at the home of her godmother Mrs. Bretton in "the clean and ancient town of Bretton", in England. Also in residence are Mrs. Bretton's son, John Graham Bretton (whom the family calls Graham), and a young visitor, Paulina Home (who is called Polly). Polly is a peculiar little girl who soon develops a deep devotion to Graham, who showers her with attention. But Polly's visit is cut short when her father arrives to take her away.
For reasons that are not stated, Lucy leaves Mrs. Bretton's home a few weeks after the Polly's departure. Some years pass, during which an unspecified family tragedy leaves Lucy without family, home, or means. After some initial hesitation, she is hired as a caregiver by Miss Marchmont, a rheumatic crippled woman. Lucy is soon accustomed to her work and has begun to feel content with her quiet lifestyle.
During an evening of dramatic weather changes, Miss Marchmont regains all her energy and feels young again. She shares with Lucy her sad love story of 30 years previously, and concludes that she should treat Lucy better and be a better person. She believes that death will reunite her with her dead lover. The next morning, Lucy finds Miss Marchmont dead.
Lucy then leaves the English countryside and goes to London. At the age of 23, she boards a ship for Labassecour despite knowing very little French. She travels to the city of Villette, where she finds employment as a bonne (nanny) at Mme. Beck's boarding school for girls. (This school is seen as being based upon the Hégers' Brussels pensionnat). After a time, she is hired to teach English at the school, in addition to having to mind Mme. Beck's three children. She thrives despite Mme. Beck's constant surveillance of the staff and students.
"Dr. John," a handsome English doctor, frequently visits the school because of his love for the coquette Ginevra Fanshawe. In one of Villette's famous plot twists, "Dr. John" is later revealed to be John Graham Bretton, a fact that Lucy has known but has deliberately concealed from the reader. After Dr. John (i.e., Graham) discovers Ginevra's unworthiness, he turns his attention to Lucy, and they become close friends. She values this friendship highly despite her usual emotional reserve.
We meet Polly (Paulina Home) again at this point; her father has inherited the title "de Bassompierre" and is now a Count. Thus her name is now Paulina Home de Bassompierre. Polly and Graham soon discover that they knew each other in the past and renew their friendship. They fall in love and eventually marry.
Lucy becomes progressively closer to a colleague, the irascible, autocratic, and male chauvinist professor, M. Paul Emanuel, a relative of Mme. Beck. Lucy and Paul eventually fall in love.
However, a group of conspiring antagonists, including Mme. Beck, the priest Père Silas, and the relatives of M. Paul's long-dead fiancée, work to keep the two apart. They finally succeed in forcing M. Paul's departure for the West Indies to oversee a plantation there. He nonetheless declares his love for Lucy before his departure and arranges for her to live independently as the headmistress of her own day school, which she later expands into a pensionnat (boarding school).
During the course of the novel, Lucy has three encounters with the figure of a nun — which may be the ghost of a nun who was buried alive on the school's grounds as punishment for breaking her vow of chastity. In a highly symbolic scene near the end of the novel, she discovers the "nun's" habit in her bed and destroys it. She later finds out that it was a disguise worn by Ginevra's amour, Alfred de Hamal. The episodes with the nun no doubt contributed substantially to the novel's reputation as a gothic novel.
Villette's final pages are ambiguous. Although Lucy says that she wants to leave the reader free to imagine a happy ending, she hints strongly that M. Paul's ship was destroyed by a storm during his return journey from the West Indies. She says that, "M. Emanuel was away three years. Reader, they were the three happiest years of my life." This passage suggests that he was drowned by the "destroying angel of tempest."
Brontë described the ambiguity of the ending as a "little puzzle."