Lorsque le père du jeune homme écossais David Balfour décède, il quitte l'école pour récupérer son héritage auprès de l'oncle Ebenezer, qui vend à son tour le garçon comme futur esclave à un bateau pirate. Lorsque le fervent partisan de la dynastie Stuart, Alan Breck Stewart, monte accidentellement à bord du navire, il emmène David avec lui lors de sa fuite à Édimbourg. Ils se séparent et se retrouvent à plusieurs reprises, mutuellement utiles contre les Redcoats et respectueux, bien que David soit fidèle à la couronne anglaise, mais découvre sa cruelle oppression. Les deux affrontent finalement leurs adversaires.