Hailey (JOANNA 'JOJO' LEVESQUE) and Claire (EMMA ROBERTS) are two 13-year-old friends who like hanging out at the small town Florida beach club run by Claire's grandparents with whom she lives. While that occasionally involves getting spooked by the sudden sight of lanky maintenance worker Leonard (BRUCE SPENCE), they don't mind since their attention is squarely focused on hunky lifeguard Raymond (JAKE McDORMAN).
But there are two things in the way of the girls' happiness. One comes in the form of older teenager Cecilia (ARIELLE KEBBEL) and her equally snobby friends who look down on Hailey and Claire, with Cecilia -- whose father is the local TV weatherman - having also set her sights on Raymond. Far worse, however, is that it's the end of the summer and Hailey's marine biologist mother Ginny (CLAUDIA KARVAN) is moving them to Australia in a few days.
Upset, but realizing there's nothing they can do, Hailey jokingly tries to cast a spell that might intervene. That night, a fierce storm arrives and deposits the possible answer to the girls' prayers in the form of 18-year-old mermaid Aquamarine (SARA PAXTON). She's swum away from home to avoid a prearranged marriage in a few days, but if she can prove that a myth known as love really exists, she can get out of it.
Learning that she can grant wishes to those who help her, the girls give up their thoughts of landing Raymond for themselves. Instead, they decide to help Aquamarine get the lifeguard to fall in love with her in exchange for her magically stopping Hailey's move halfway around the world. With a deadline of three days and the complication of Aquamarine's new human legs changing back to her tail at sunset or if touched by water, the girls set out to help the naive mermaid find love.