Conor, a lighthouse keeper, lives on an island with son Ben, his pregnant wife Bronagh, and sheepdog Cú. Bronagh disappears late one night after childbirth, leaving behind daughter Saoirse.
Six years later, Conor is broken, Saoirse is mute, and Ben is hostile toward Saoirse, blaming her for Bronagh’s disappearance. On Saoirse’s birthday, they are visited by their grandmother, “Granny”. That night, Ben scares Saoirse with a story of Mac Lir and his mother Macha, the Owl Witch, who stole his feelings and turned him to stone. Later, Saoirse plays a seashell horn given to Ben by their mother, leading her to a white sealskin coat in Conor’s closet. She wears the coat and walks to a group of seals in the sea, revealing her as a selkie. After swimming, she is found by Granny, who insists upon taking the children to the city. Conor reluctantly agrees despite Ben’s protests, and locks the coat in a chest, throwing it into the sea.
On Halloween, Saoirse plays the seashell, alerting Færie to her. She and Ben attempt to go home, but encounter the Færie, hoping she will allow them to return to Tír na nÓg. However, they are attacked by Macha’s owls, turning the Færie to stone. They take a country bus, and run into Cú, who had followed them. However, Saoirse is growing ill. They come across a sacred well that Saoirse dives into. Ben follows and meets the Great Seanachaí: they learn Saoirse was kidnapped by Macha, and she is mute because she needs the coat, and will soon die if she does not get it back. He gives Ben one of his hairs that will lead him to Macha. As he follows the hair, it shows him that Bronagh – a selkie herself – was forced to return to the ocean when Saoirse was born.
Ben then meets Macha, who explains that when Mac Lir suffered from a broken heart, she turned him into an island near their home. She is determined to do likewise for everyone, even herself. Ben manages to rescue Saoirse, giving Macha back her feelings and allowing her to recognize that taking away feelings doesn’t help. She helps to fly them back home, and Conor attempts to take Saoirse to a hospital; simultaneously, Granny is near the island to find them. Ben dives into the sea in search of Saoirse’s coat, and recovers it with the seals and Conor. The group is then washed up on Mac Lir’s island. Saoirse’s coat is put on but her health is not fully restored. Ben tries to get Saoirse to sing, and she eventually sings the Song of the Sea. The song causes the Færie to rise and travel to Mac Lir. Mac Lir is transformed back into his original form and continues with Macha, his dogs and the Faeries back home to Tír na nÓg.
Bronagh appears preparing to depart with Saoirse, but Ben pleads to let Saoirse stay with them. Since she is half-human, the choice rests with Saoirse, who elects to remain behind with her father and brother, even though it means giving up her selkie powers and becoming fully human. Accepting her daughter’s decision, Bronagh takes her coat. Ben asks Bronagh to stay as well but she is unable to, and tells him to remember her in his stories and songs and that she’ll be always be with him and love him. After a tearful farewell, Ben and his family happily return home to their island, where Granny finally arrives, and decides the children can stay with their father. Ben and Saoirse reconcile and become friends.