NOTE: This spoiler was submitted by Jeremy

The film opens in Italy, with two fishermen riding their boat out into the water at night. Their record player is then taken underwater by a sea monster. The creature gets caught in their net but manages to free himself, leaping out over the boat before disappearing from the mens’ sight.

Under the ocean lives Luca Paguro (Jacob Tremblay), a young sea monster who lives with his parents Daniela (Maya Rudolph) and Lorenzo (Jim Gaffigan) plus his Grandma (Sandy Martin). He must round up some fish (that act like sheep) while also hiding from a boat that passes above the surface. Despite his parents’ warnings to avoid the surface, Luca has always had some interest, and Grandma even encourages his curiosity.

Luca comes across the record player from before. As he approaches it, a figure in a diving suit goes near Luca. Thinking it’s a human, he hides in a cave. The figure pulls off their helmet to reveal the other sea monster from earlier, a boy around Luca’s age named Alberto Scorfano (Jack Dylan Grazer). Luca watches as Alberto goes up to the surface and changes into a human boy, and when Luca is pulled up out of the water, he does the same. He is initially freaked out, but he soon joins Alberto on the land once he learns how to use his new legs. Alberto takes Luca to his hideout, filled with other human trinkets that he has collected. Luca sees a poster for a Vespa, which both boys are impressed by. He then spends the next couple of hours helping Alberto create a makeshift Vespa until he has to go home.

Over the next few days, Luca joins Alberto on the surface, although his parents are both becoming suspicious when he comes home late and they don’t see him tending to the sheep fish. The boys try to do a jump with their Vespa, but it keeps breaking apart until they manage to create a more durable one. When Luca continues to show fear and hesitance, Alberto tells him that he has a voice in his head, a “Bruno”, and he must get over his fear by declaring “Silenzio Bruno!” Unfortunately, when Luca gets home, Daniela and Lorenzo reveal that they know he has been going off to the surface, so they plan to send him off with his senile Uncle Ugo (Sacha Baron Cohen) for the rest of the summer.

Luca tells Alberto of their predicament, and his solution is to retreat to the nearby town of Portorosso and find a way to get their own Vespa and be free. The boys manage to get into town in their human forms and spot other humans in the plaza. Luca kicks a ball toward some children playing, only for the ball to bounce and hit a Vespa belonging to local bully Ercole Visconti (Saverio Raimondo). He is accompanied by his lackeys Ciccio and Guido (Peter Sohn and Lorenzo Crisci), and Ercole goes to antagonize Luca and Alberto. He tries to drag Luca into the fountain, almost revealing Luca’s scales, but the boys are saved by a girl named Giulia Marcovaldo (Emma Berman).

Luca and Alberto briefly follow Giulia as she mentions that she hates Ercole because he always picks on everyone and taunts her for losing a local triathlon, The Portorosso Cup, the previous year because she got sick. After learning that the grand prize is money, Luca tells Alberto that they can use the money to get a Vespa and fulfill their goal. Giulia tells them that she races alone, but Luca convinces her to let him and Alberto create a team. She brings the boys back to her house where she lives with her father Massimo (Marco Barricelli), a one-armed sea monster hunter. The boys try to hide their sea monster forms from him as he feeds them pasta, which they love. Their cat Machiavelli is less welcoming to the boys and attacks Luca more than once.

The next morning, Luca and Alberto join Massimo on the water as he fishes, while both trying to continue hiding their underwater forms. Afterward, they go with Giulia to sign up for the race, only to find Ercole there to taunt them. After Luca compares him to a catfish (a bottom feeder with whiskers), Ercole’s pride is hit and he decides to let the boys enter the competition just so he can rub it in their faces when he wins. The kids then train for the three main parts of the race: swimming a lap, eating a bowl of pasta, and then doing the final bike ride. Giulia takes on the swimming task, while Alberto must devour countless bowls of pasta in preparation, and Luca practices bike-riding.

Daniela and Lorenzo realize Luca is missing, so they go to the surface world and take on their human forms to find their son. Since they have never seen his human form before, they go through the kids in the plaza by making them fall into the fountain and seeing that none of them are Luca.

At night, Luca talks to Giulia, who says she feels like an outsider because everyone thinks she’s weird, which Luca relates to. She also tells him about the stars in the sky, which Alberto previously told him were fish. She brings Luca to a neighbor’s telescope to see them more closely, and Luca is amazed. However, Alberto notices that Luca is spending more time with Giulia and he starts to get jealous.

Giulia tells Luca about the school that she goes to in Genova when she stays with her mother, which piques Luca’s interest. However, Alberto tells Luca that other kids would not accept them because of who they really are. The boys are then found by Ercole and his minions, as he has become suspicious of the boys. He threatens them and even punches Alberto in the stomach before saying he wants them out of town.

When the kids try to practice the bike ride through the town, Alberto takes Luca with him to spite Giulia, leading to them careening through the streets out of control until they ride the bike off a ledge into the ocean. The boys argue, but Giulia finds them once they turn human again. After Luca tells Giulia he wants to go to school in Genova with her, Alberto then decides to reveal his true form to Giulia. Unfortunately, Ercole and his goons are nearby and throw harpoons at Alberto, who sadly flees after Luca hides his own identity and calls Alberto a sea monster.

Luca goes back to Giulia’s house, but when he won’t explain things to her, she throws water on him and finds out he is also a sea monster. She is not horrified, but rather concerned that the other people out there might hurt him since Portorosso is a fish-hunting town. Luca then leaves to find Alberto at his hideout. There, Alberto reveals that his father left him and never came back, and he has been living on his own ever since. Even though Alberto tells Luca to go away, Luca wants to go through with the race anyway for the sake of their friendship.

The day of the Portorosso Cup arrives. Giulia decides to compete by herself, but Luca shows up and does the same. He wears Alberto’s diving suit for the swimming portion as Ercole tries to get Ciccio to go faster by dumping olive oil on him, but it only attracts fish that bite Ciccio. The others make it to the pasta portion, with Giulia and Luca gaining momentum, while Ercole stuffs the pasta into Guido’s face to get him to finish. As the bike portion begins, it starts to rain. Luca can’t get far enough without risking revealing himself, but Alberto soon runs toward him with an umbrella. Ercole knocks Alberto down, revealing his sea monster form to everyone. As they start to go for Alberto, Luca rides his bike and reveals his true form as well to save his friend. They then race to the bottom of the hill as Ercole deliberately tries to kill the boys with a harpoon. Giulia rams her bike into his to save her friends, leading to her taking a hard tumble down the hill. The boys cross the finish line but run back to help Giulia up. The townspeople then surround the boys, until Massimo defends them and declares they are the winners since their bike did make it past the line. Ercole protests and orders his goons to do something, but Ciccio and Guido have had enough of his behavior, so they toss him into the fountain. Daniela, Lorenzo, and Grandma all arrive and reveal their sea monster forms as they embrace Luca. Two elderly women seen throughout the film also reveal that they are sea monsters.

Everyone celebrates at Giulia’s house, and the boys buy a cheap, worn-out Vespa. Daniela and Lorenzo wonder if they have been too hard on Luca’s curiosity and think maybe he could go off to school with Giulia. Grandma says that while not everyone will accept him, Luca is smart enough to know who to trust.

Luca and Alberto go to the train station as Giulia is set to leave for Genova. Alberto then tells Luca that he sold the Vespa so that he could buy Luca a train ticket so that he can join Giulia at school. Daniela and Lorenzo come out to state that they talked it over with Giulia’s parents so that Luca can stay with her and her mom. Although Luca wants Alberto to go, he tells Luca that he is going to stay with Massimo, helping him with work in exchange for a place to stay. The two boys hug each other goodbye, and Luca says farewell to his family as he stands outside the train in his sea monster form.

The credits show drawings of Luca and Giulia having fun in Genova while keeping in touch with Alberto, Massimo, and Luca’s family. After the credits, Uncle Ugo is shown talking nonsensically to one of the sheep fish.

Brought to you by

In Italy, there are sea monsters who can take human form on land. Luca Paguro is a young sea monster who has always been fascinated with the surface world, but his parents Daniela and Lorenzo forbid him from going. Luca meets another sea monster his age named Alberto Scorfano, and he shows Luca that the world above water is incredible. When Luca's parents threaten to send him away for the summer with his Uncle Ugo, the boys retreat to the nearby town of Portorosso in the hopes of fleeing.

The boys meet a girl named Giulia Marcovaldo, whose father Massimo is a sea monster hunter. In fact, all of Portorosso is known for being a fish-hunting town. The kids are antagonized by local bully Ercole Visconti, who has won the Portorosso Cup Race for the last few years, something that Giulia has always wanted to win. The boys join Giulia to train for the competition so they can use the prize money to win a Vespa. Luca gets closer to Giulia, which makes Alberto jealous. Meanwhile, Daniela and Lorenzo make it to the surface world to find Luca.

After Luca plans to join Giulia at school when she goes back home with her mother, Alberto reveals his sea monster form to her to prove to Luca that humans won't accept them. Ercole sees and tries to hunt Alberto down. Luca also reveals himself to Giulia, but he still competes in the race by himself for the sake of his friendship with Alberto. When it starts to rain, Alberto comes back to protect Luca with an umbrella, only for Ercole to expose Alberto to the townspeople. Luca saves Alberto at the expense of revealing himself as well, and when Ercole tries to kill them, Giulia saves them and is injured. The boys go back to help her, and Massimo gets everyone to back off of the boys, declaring them the winners of the race. Ercole is left humiliated after his two lackeys Ciccio and Guido turn on him. Daniela and Lorenzo then find Luca and his friends.

Giulia is set to go back to Genova with her mom but Alberto reveals to Luca that he got him a ticket to go with her so he can join her at school while Alberto will stay with Massimo and have a real home. Luca bids farewell to his friend and family as he joins Giulia for a new adventure.