Янош родился на территории современной румынской области Олтения в венгерской дворянской семье валашского происхождения. Он поступил на службу к императору Священной Римской империи и королю Венгрии Сигизмунду. За военные заслуги император даровал ему владения в пограничной провинции с Турцией.
После смерти Сигизмунда и его наследника Альбрехта Габсбурга Янош Хуньяди оказал поддержку польскому королю Владиславу III Ягеллону против малолетнего сына Альбрехта Ладислава Посмертного (Ласло V) и помог ему занять венгерский трон. Как благодарность Владислава Янош стал неофициальным правителем Венгрии. В 1441—1442 годах Хуньяди нанёс крупные поражения туркам на территориях Венгрии и Болгарии.
В 1444 году турки запросили мира возле Сегеда. Хуньяди согласился, но узнав, что венецианские корабли овладели проливами Босфор и Дарданеллы и тем самым перекрыли отступление для султана решил начать новое наступление на турок. Обнаружив возле Варны, что турецкая армия превышает его в четыре раза и венецианцы так и не могут помочь, ему ничего не оставалось делать, как принять неравный бой, в котором пал король Владислав. Хуньяди с остатками армии бежал назад в Венгрию.
В 1445 году на съезде представителей высшей венгерской аристократии Хуньяди был избран князем Трансильвании, а в 1446 году регентом Венгрии от имени малолетнего короля Ласло V. В 1448 году получив золотую цепочку от папы он вернулся на поле битвы, однако проиграл в сражении на Косовом поле из-за измены сербского князя.
В 1450 году Хуньяди прибыл в Пожонь и начал вести переговоры с императором Фридрихом III об освобождении короля Ласло, которого тот содержал у себя пленником, однако переговоры оказались безрезультатными.
В 1453 году пал Константинополь и стало ясно, что следующую кампанию турки проведут против Венгрии. Хуньяди тогда собрал армию чтобы остановить турок. В 1454 году он вынудил султана Мехмеда II снять осаду Смедерево, а в 1456 под Белградом временно остановил продвижение турок, но вскоре умер в результате вспыхнувшей эпидемии чумы.