Fujimoto, en tidligere trollmann og forsker, bor under vann sammen med sin datter Brunhilde og hennes mindre søstre. Når hun og søsknene er på utflukt med faren i en ubåt, smyger Brunhilde seg vekk. Etter et møte med en fisketråler blir hun fanget i en glasskrukke og driver til bredden av en liten by hvor hun blir reddet av en fem år gammel gutt som heter Sōsuke. Gutten knuser krukken mot en stein, men skjærer seg på en finger i prosessen. Brunhilde slikker såret, og får det til å gro nesten umiddelbart. Sōsuke gir henne navnet Ponyo, og lover å beskytte henne. I mellomtiden søker en fortvilet Fujimoto hektisk etter sin savnende datter som han tror har blitt kidnappet.