O filme passa-se durante a década de 1940. Sherlock Holmes (interpretado por Ian McKellen, da série X-Men e das sagas O Senhor dos Anéis e O Hobbit) está com 93 anos, aposentado da profissão de detetive e vive em uma pequena chácara no interior da Inglaterra com sua governanta, a Sra. Munro (Laura Linney, de O Show de Truman) e o filho dela, Roger (o ator infantil Milo Parker). Apesar da idade avançada, Holmes não consegue esquecer o passado e decide, a todo custo, resolver um antigo mistério que envolve uma mulher belíssima e que foi responsável por seu afastamento. Na ausência do Dr. Watson, Holmes terá que contar com a ajuda do pequeno Roger.