Luca (Jacob Tremblay) is a young sea monster who lives below the water's surface. The humans are afraid of sea monsters and try to kill them, so Luca has been taught to never allow himself to be seen by one. When he meets another young sea monster named Alberto (Jack Dylan Grazer), he discovers his new friend lives on land, where the sea monsters take on a human appearance.
Slowly, Luca begins to see the plus side of living life as a human. Hoping to get their hands on a Vespa so they can travel the world, the boys meet Giulia (Emma Berman), who helps them enter a contest so they can win money to buy the Vespa. However, because the townsfolk are so fearful of sea monsters, Luca and Alberto have to keep their secret to themselves — and make sure never to get wet.