In present day Scotland, a local man (BRIAN COX) tells the following story to a couple of young American tourists. In 1942, during World War II, a young boy named Angus MacMorrow (ANGUS ETEL) misses his sailor father desperately. Afraid of the water, Angus discovers a barnacle-encrusted, soon glowing blue egg near the shore, and hides it in his father's workshop, where he keeps a calendar to keep track of his father's days at sea. The egg hatches, producing a strange creature with flippers, a long neck, and a prodigious appetite.
Angus names the creature Crusoe, after his favorite adventure story. Though Crusoe is at first small enough to keep hidden from his mother Anne (EMILY WATSON) and older sister Kristie (PRIYANKA XI), almost as soon as it begins to eat the garbage can full of kitchen scraps Angus finds for it, Crusoe begins to grow.
At around the same time, the estate where Anne is head housekeeper (her absent husband was the groundskeeper) is commandeered by Captain Hamilton (DAVID MORRISSEY) of the Royal British Navy, who instructs his men to establish the loch as a last bastion against a possible Nazi invasion. As they are building up armaments along the shore, Anne hires Lewis Mowbray (BEN CHAPLIN), a former sailor who serves as the new groundskeeper.
When Anne begins to accept attentions (and a dinner invitation) from Captain Hamilton, Lewis becomes jealous. But because he's very shy, he doesn't act on his obvious feelings for Anne, but instead focuses his energies on helping Angus work though his longing for his father.
Angus finally has to reveal his pet to Lewis, who recognizes it as the legendary water horse, destined to live in the loch near Angus' home. Once they free Crusoe, Angus sneaks away to visit it in the loch. Crusoe then takes him for a ride underwater and across the loch, so the boy is no longer afraid of water.
Eventually, however, Captain Hamilton's men spot the creature in the loch and believe it to be a secret Nazi weapon. From that point on, Angus tries to lead Crusoe away to safety.