Conor, a lighthouse keeper, lives on an island with son Ben, his wife Bronagh, and sheepdog Cú. Bronagh disappears late one night, presumably dying after childbirth, leaving behind daughter Saoirse.
Six years later, Conor is broken, Saoirse is mute, and Ben is antagonistic towards Saoirse, blaming her for Bronaugh. On her birthday, she is visited by Granny, he grandmother. 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, 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 shell, alerting Færie to her. Ben and her attempt to go home, but encounter the Færie, hopeful that Saoirse will allow them to go 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, where they run into Cú, who had followed them. However, Saoirse is growing ill. They come across a sacred well that Saoirse falls into. Ben follows and meets the Great Seanachaí: They learn that she was kidnapped by Macha, and that she is mute because she needs the coat otherwise she will die. He gives Ben one of his hairs that will lead him to Macha, showing that Bronaugh – a selkie herself – returned to the ocean, remorsefully watching.
Ben then meets Macha, who claims that when Mac Lir suffered from a broken heart, she turned him into an island near their home. Ben manages to rescue Saoirse, giving Macha her feelings, recognizing that taking away feelings doesn’t help. She helps them 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, where Saoirse is fully healthy and sings the song. Færie rise and travel to Mac Lir and he emerges with Macha and his dogs as they head to Tír na nÓg.
Bronagh appears preparing to depart with Saoirse, but since she is half-human, Bronagh takes her coat and departs. After a tearful goodbye, the Faeries depart across the sea, and 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.