In eighteenth century Scotland, young David Balfour is directed by his recently-deceased father's letter to go to the House of Shaws, where he is greeted without much enthusiasm by his miserly uncle Ebenezer. An attempt to arrange a fatal accident makes it clear that Ebenezer has no affection for his nephew. However, David is not sufficiently on his guard. He accompanies Ebenezer to a meeting with a seafaring business associate, Captain Hoseason. The captain lures David aboard his ship and shanghais him, at Ebenezer's instigation.
At sea, David learns that he is to be sold into indentured servitude. However, a thick fog comes up and the ship collides with a boat. Alan Breck Stewart, the only survivor of the latter, is brought aboard and pays for his passage, but the greedy captain plots to kill him for the rest of his money. David warns Alan, and the two are able to overcome the murderous crew. Alan coerces Hoseason into putting them ashore. The ship founders, but David manages to reach land alone.
After several dangerous encounters, he is rescued by Alan, who turns out to be a Jacobite wanted by the authorities. Evading the soldiers, the two make their way back to the House of Shaws, where Alan tricks Ebenezer into admitting his crimes within the hearing of a hidden witness, allowing David to claim his inheritance.
Peter Finch as Alan Breck Stewart
James MacArthur as David Balfour
Bernard Lee as Captain Hoseason
John Laurie as Ebenezer Balfour
Niall MacGinnis as Mr. Shaun
Finlay Currie as Cluny MacPherson
Miles Malleson as Mr. Rankeillor
Duncan Macrae as The Highlander
Andrew Cruickshank as Colin Campbell
Peter O'Toole as Robin MacGregor
Alex Mackenzie as The Ferryman
Oliver Johnston as Mr. Campbell
Norman Macowan as Tinker
Eileen Way as Jennet Clouston
Edie Martin as the woman who shows Balfour the House of Shaws
Abe Barker as Donald Dhu MacLaren
Richard Evans (uncredited) as Ransome, the cabin boy