Two teenage best friends, Hailey Rogers (JoJo) and Claire Brown (Emma Roberts), regret that they will be separated in five days, since Hailey has to move to Australia because of her mother’s (Claudia Karvan) job. One night, after a violent storm, Hailey wishes for a miracle that will make her mother change her mind about moving, and so they find a mermaid named Aquamarine (Sara Paxton) in the swimming pool of their beach club. The girls are frightened at first, but then curious. They start to talk with Aquamarine and promise her they will be back in the morning.
The next morning, Claire wakes up and hears a strange commotion down at the swimming pool where they left Aquamarine. Claire’s grandparents Bob and Maggie (Roy Billing and Julia Blake) were clearing the pool because of the huge storm. Both Claire and Hailey quickly rush down to save Aquamarine but when they reach the pool, everything has been cleared. They hear noises by the nearby beach’s snack shack and find a nude Aquamarine. The only difference is that she has legs instead of a mermaid’s tail. Aquamarine tells them she can assume human form on land during the day if she does not get wet. Claire and Hailey become friends with Aquamarine, who tells them that she came to land to find love, an idea she knows nothing about, but desires desperately. She tells them that she made a deal with her father that if she can prove love is not a myth, she will not have to undergo an arranged marriage to a spoiled merman, but she only has three days to do it. She notices a handsome lifeguard named Raymond (Jake McDorman), whom Claire and Hailey have admired for a while, and enlists the help of the two girls to win his heart in return for granting their wish. The girls see their opportunity to keep Hailey from moving and quickly work on prepping Aquamarine on the how-tos of attracting a man. These self-educated relationship experts, having gained all their knowledge from reading magazines every day and often quote them, soon realize it’s a lot easier said than done.
Claire and Hailey’s rival – a spoiled, rich girl named Cecilia (Arielle Kebbel) – tries her best to stop them, but ultimately fails, causing her father to cut off her driving privileges. Also prominent is an eccentric, compassionate caretaker, Leonard (Bruce Spence), rescues Aquamarine from public discovery and then Aqua grants him a wish; he now has a lovely relationship with Bonnie (Lulu McClatchy), his long-time crush. Eventually, it is not Raymond that convinces Aquamarine’s father about love, but Claire and Hailey, who are willing to give up their wish and their lives in the aiding of a friend. Raymond and Aquamarine share a kiss and promise to meet up again in the future, Raymond promises he’ll wait for her. Hailey and Claire get their wish from Aquamarine, but decide not to use it until later. Aquamarine gives both Hailey and Claire a starfish earring, which tell Hailey she is beautiful inside and out, and Claire is courageous and has a true heart. Aquamarine says that they can always call her on her shell phone.