Original Release: October 6, 2017 (US)
Running Time: 44 minutes
The seventh season premiered on October 6, 2017 and the last episode of the season aired on May 18, 2018.
Years later after the Final Battle, Lucy (Alison Fernandez) arrives in the neighborhood of Hyperion Heights in Seattle, Washington with her Once Upon a Time book to find her father Henry Mills (Andrew J. West) who is needed by his family.
Characters from the New Enchanted Forest were brought to Hyperion Heights under a new curse and are caught in a rising conflict involving Cinderella (Dania Ramirez) and Lady Tremaine (Gabrielle Anwar) whose dangerous history with Mother Gothel (Emma Booth) is also revealed. The seventh season will serve as the final season of the series.
In present-day Seattle, an older Henry is reunited with his daughter Lucy, whom he does not remember because of a curse. In hopes of breaking it, Lucy leads him to her neighborhood of Hyperion Heights, home to many other cursed fairytale characters including Jacinda, Lucy's down-on-her-luck single mother who is in a contentious relationship with her powerful stepmother Victoria. Others include Roni, a bar owner who is struggling with having to sell her establishment to Victoria, and Rogers, a cop who gets promoted to a detective and is introduced to his new partner, Weaver.
In the present day, Jacinda tries to save Lucy's beloved community garden from Victoria, while Lucy takes a skeptical Henry on a trip under the garden lot in hopes of finding proof of everyone's fairytale pasts. Meanwhile, Henry, Roni, and Rogers find their first lead against Victoria. Rogers captures the man working with her, but is irritated to find Weaver setting the man free to use him as a future connection. Also, it is revealed that Victoria is not cursed and has been keeping a witch as her prisoner at the top of Belfrey Towers.
However, an aging Belle eventually admits that the "sun" of which the prophecy spoke was actually herself and that her death will mark the start of his journey. When Belle dies, Rumple sets off to search for a Guardian who will be able to take the Darkness from him so that he can ultimately be reunited with Belle. In the present day, Tilly, who is actually Alice, begins to wake up from the curse after she stops taking pills given to her by Victoria. In her new state of clarity, she tries to get Weaver to remember his true identity. Meanwhile, Ivy is tasked with taking Lucy trick-or-treating and loses her in the streets. She ends up bonding with Henry and defies her mother to give Jacinda and Lucy time together.
Victoria sends someone to burn the place down, which then causes friction between the two roommates. Rogers comes across a detainee at the police station who he thinks is connected to Eloise Gardener, the missing girl he's trying to find. Meanwhile, Roni decides to investigate Ivy's interest in helping Henry. Ivy takes her to the top of the towers and Roni finds a photo of herself and a young Henry taken in Storybrooke. However, it is later revealed that Ivy hasn't been cursed either and has her own dealings with the witch of which her mother is unaware.
In the present day, Roni struggles with what to believe about the mysterious photo, which is complicated by newly discovered information about "Regina Mills" into which Lucy encouraged her to look. Drizella gathers the ingredients for a plant that the witch then cultivates and, when she serves its essence to Roni, she wakes up and remembers her life as Regina. Drizella then reveals that she cast the curse and blackmails Regina into keeping Henry and Jacinda apart, reminding her of a special contingency that was put into the Curse that would force her to comply.
Hook gives the Jolly Roger to Smee and decides to stay with his daughter, who is unable to leave due to the tower's spell. He names her Alice after his own mother. In the present day, Rogers is on a mad hunt for Eloise with help from Henry and Tilly. Tilly later informs him that Eloise has died, but it turns out that the news was planted by Weaver to throw him off the case. Weaver warns Rogers that Eloise is not the person he thinks she is. When Rogers finds Gothel, he believes that she is Eloise and frees her from Victoria, who gets locked up for kidnapping. Meanwhile, Tremaine has discovered that Drizella is awake and Regina tries to put some distance between Henry and Jacinda.
Henry and Cinderella then share their first kiss. In the present day, Jacinda contacts Nick (Jack in Fairy Tale Land), a lawyer whom she has been cursed to believe is Lucy's father. He agrees to help her regain custody of Lucy, to Henry's dismay, and Lucy encourages Henry to fight for Jacinda. Meanwhile, Drizella and Gothel plan to revive Anastasia but, when they open her coffin, her body is missing. After Regina confronts Rumple, who refuses to confirm that he has woken up from the curse, she announces to Henry that she's heading to San Francisco to meet with someone who was pushed out of town by Victoria. He agrees to join her on the trip.
Rapunzel seeks Gothel's help, who magically seals Anastasia's last breath with the price of keeping Anastasia in the tower. However, Rapunzel tricks Gothel who becomes trapped in her own tower until someone in her bloodline takes her place. In the present day, Victoria strangely gives full custody of Lucy to Jacinda, claiming to be a changed person. Victoria retrieves the Once Upon a Time book and shows Lucy her unfortunate life story as Rapunzel and convinces Lucy to give up her belief in happy endings. As Lucy sheds a tear, Victoria uses it to awaken Anastasia, while Lucy collapses into unconsciousness.
Later, when the heroes confront the witches, Gothel reveals that they have poisoned Henry, and Regina is forced into casting Drizella's curse to save his life. In the present day, Regina has located a cursed Zelena in San Francisco, who is now known as Kelly. Regina is able to give Zelena her memories back and the two head back to Seattle, knowing that breaking the curse to help Lucy would only hurt Henry instead. Rumple tests Anastasia to see if she is the Guardian. However, Gothel also wants Anastasia and severs her alliance with Drizella after the girl is brought to her, deeming Anastasia to be more useful in her coven. Gothel tells her that they need to find their fellow witches.