John Hannah is the fourth and youngest child in his family, with two older sisters. Prior to becoming an actor, Hannah took up a job as an apprentice electrician for four years, and resigned his job once he was accepted into the Royal Scottish Academy of Music and Drama in Glasgow.
With his wife, Joanna Roth, he has fathered two children. In 2004, Hannah was considered to play a role in the popular television series "Lost", but the role was given to another actor once it was rewritten. Since the shooting of the first film, Hannah has retained a lasting friendship with co-star Rachel Weisz.