剑桥学生亚历克西斯王子(雷金纳德·丹尼饰)被指控窃取体育资金。朋友兼同学华生建议他寻求同学夏洛克·福尔摩斯的帮助。与此同时,福尔摩斯在乡村磨练自己的观察能力时摔倒并昏迷不醒。一位年轻的路人艾丽丝·福克纳(卡罗尔·登普斯特饰)前来帮助他,这让他很高兴。
福尔摩斯接手此案,很快就找到了嫌疑人福尔曼·威尔斯(威廉·H·鲍威尔饰)。威尔斯最终承认,他拿钱是为了逃离莫里亚蒂(古斯塔夫·冯·塞弗蒂茨饰);威尔斯实际上是一个骗子的儿子,被犯罪策划者为以后的一些计划所培养。福尔摩斯着迷地与莫里亚蒂面对面,无礼地要求研究他,但莫里亚蒂当然拒绝合作。福尔摩斯告诉华生,他已经找到了自己的人生使命:阻止莫里亚蒂。
与此同时,亚历克西斯的叔叔冯·斯塔尔堡伯爵(大卫·托伦斯饰)带来了重要消息:他的两个兄弟都在一场“车祸”中丧生。他现在是王储,因此不能娶爱丽丝的妹妹罗丝·福克纳。罗丝伤心欲绝,自杀。
岁月流逝。福尔摩斯因解决了令苏格兰场困惑的谜团而受到报纸的赞扬。他的调查技巧未能找到爱丽丝·福克纳,但他们的道路再次交叉。莫里亚蒂正在追查罗丝·福克纳写给王子的情书,以敲诈勒索。他让她贫困的妹妹爱丽丝被“G·内维尔·切特伍德”聘请为秘书,而“G·内维尔·切特伍德”实际上是一个名叫詹姆斯·拉拉比(安德斯·兰道夫饰)的追随者。当王子要求福尔摩斯接手此案时,他最初拒绝了,因为他认为王子对罗丝的死负有责任,但当他得知爱丽丝参与其中时,改变了主意。
福尔摩斯让福尔曼·威尔斯潜入拉拉比家,担任新管家。福尔摩斯通过诡计让爱丽丝说出她把这些信件藏在哪里,但奇怪的是,一旦他拿到这些信件,他就把它们还给她,尽管她打算出版它们来为她的妹妹报仇。他告诉华生,这些信件将成为引诱莫里亚蒂离开他的巢穴的诱饵。
就莫里亚蒂而言,他因福尔摩斯对他的不懈追捕而被逼得越来越深入地下,这让他感到沮丧。他将爱丽丝带到“毒气室”(他在那里处置了其他人)。福尔摩斯故意走进了陷阱,但还是设法救出了爱丽丝。
莫里亚蒂随后启动了他的整个庞大组织,试图杀死他的宿敌。然而,福尔摩斯已经做好了迎接挑战的准备。莫里亚蒂的大多数追随者都被警察抓获,当莫里亚蒂亲自(乔装)前来执行任务时,福尔摩斯也逮捕了他。福尔摩斯随后计划与爱丽丝的蜜月。