Hansen startede sin håndboldkarriere i den færøske håndboldklub Kyndil fra Thorshavn, hvor han begyndte som 4-årig. Samtidig spillede han også fodbold og kom på Færøernes U17 landshold i fodbold. Men det var håndbolden, han valgte at satse på. Han fik plads hos SHEA - Skanderborg Håndbold Elite Akademi, og flyttede derfor til Danmark kort tid efter, at han var fyldt 16 år.  I 2012 spillede han for Færøernes håndboldlandshold i IHF/EHF Challenge Trophy, som er en håndboldturnering for mindre håndboldnationer. Efter Færøernes kamp mod Moldova blev Hansen valgt til kampens bedste spiller. Som 16-årig flyttede han til Danmark for at spille håndbold for Skanderborg. I april 2013 fik han forlænget sin kontrakt med Skanderborg Håndbold med tre år.Johan valgte at skifte håndboldnationalitet fra færøsk til dansk i 2013. Det medførte, at han fik karantæne fra at spille landskampe i to år, hvor han hverken måtte spille for Færøerne eller Danmark. Den danske landsholdtræner Ulrik Wilbek sendte i 2013 en anmodning til Færøernes Håndboldforbund, hvor han anmodede om, at Johan Hansen fik lov til at skifte nationalitet indenfor håndbold. Wilbek sagde, at Hansen var den bedste højrefløj i Danmark fra årgangen 1994/95. Hansen sagde til Kringvarap Føroya i september 2013, at Danmark var en af verdens bedste håndboldnationer, og Danmarks U19 håndboldlandshold var verdensmestre, og desuden deltog Færøernes håndboldlandshold ikke i hverken EM eller VM kvalifikationer, derfor ønskede han at skifte håndboldnationalitet til dansk. BT skrev en artikel om Jóhan Hansen i forbindelse med at han skiftede håndboldnationalitet, BT skrev bl.a.: "Han har et fysisk helt unikt talent og en springkraft, jeg ikke har set magen. Han leder tankerne hen på Luc Abalo (fransk landsholdsstjerne) i springstyrke og teknik, og det ser man ikke så tit på disse kanter, siger Skanderborg Håndbolds sportschef Jesper Koch til klubbens hjemmeside." Hansen fik sin debut for Danmarks U21 håndboldlandshold den 5. januar 2015, som var en landskamp mod Sverige, som Danmark vandt. I juli/august 2015 spillede Hansen for Danmarks U21 landshold i VM i håndbold i Brasilien. Danmark kom i finalen, men tabte 26-24 mod Frankrig. Danmark vandt derved sølv ved VM for U21 landshold. Fra september 2016 spiller han med Bjerringbro-Silkeborg i gruppespillet i EHF Champions League 2016-17, hvor han har været topscorer et par gange.