Джон Ханна родился в Ист-Килбрайде около Глазго, был самым младшим ребёнком в семье, состоявшей из отца, матери и двух старших сестёр. Его мать, Сьюзен, работала уборщицей в Marks & Spencer, а отец, Джон, работал слесарем. Джон окончил среднюю школу в Клермонте и собирался стать инженером-электриком. В Ист-Килбрайде он участвовал в местном театральном кружке, последовав совету знакомых, решил поступить в Королевскую Шотландскую Академию Музыки и Драмы.
После окончания учёбы, Ханна продолжал участвовать в театральных постановках, сниматься в короткометражных фильмах и телепередачах, в том числе, играя и в главных ролях. В 1994 году в фильме «Четыре свадьбы и одни похороны» Джон сыграл роль Мэтью, которая принесла ему известность. После первой интересной роли, Джону предложили сыграть маньяка-убийцу в фильме «Правда или вызов». Также он сыграл комичную роль вороватого и юморного Джонатана в фильме «Мумия» (1999). После чего в 2001 последовало продолжение «Мумия возвращается», с участием Ханны в той же роли. В 1998 году Джону предложили сыграть роль романтика, цитирующего Монти Пайтона в мелодраме «Осторожно, двери закрываются». В 2002 Ханна появился в качестве приглашенного актёра в сериалах «Шпионка» (2001), «Фрейзер» (2002) и «Карнавал» (2002). В 2006 Ханна сыграл также в драматических телесериалах «Новый закон улиц» (англ. New Street Law) и «Холодная кровь» (англ. Cold Blood).
24 декабря 1997 года Джон Ханна и продюсер Мюрреей Фергюсон основали кинокомпанию Clerkenwell Films. Первым их совместной работой стал телесериал «Ребус» (эпизоды «Чёрное и голубое» и «Висячие сады»). Сериал впоследствии перекупила компания SMG Productions, и Ханну в главной роли заменил Кен Скотт.
В 2010 году исполнил роль Квинта Лентула Батиата в историческом сериале американского кабельного канала Starz «Cпартак: Кровь и песок», а затем и в приквеле «Спартак: Боги арены».
20 января 1996 года Джон Ханна женился на актрисе Джоанне Рут, с которой встречался уже несколько лет. 11 февраля 2004 года у Джона и Джоанны родились близнецы, мальчик Гэбриэл и девочка Астрид.