Родившийся в Ливерпуле Джо Фэган привлёк внимание профессиональных клубов, выступая любительский клуб «Эрлстоун Богемианс». Ему предложили контракт «Ливерпуль» и «Манчестер Сити», но Джо выбрал «Сити», так как тогдашний менеджер мерсисайдского клуба Джордж Кей видел его только в далёком резерве. С началом Второй мировой войны Джо пошёл служить в Военно-Морской флот Великобритании. После окончания войны Фэган вернулся в «Манчестер Сити», с которым добился в 1947 году повышения в классе — клуб вышел в Первый Дивизион. Последние несколько лет карьеры игрока Джо был капитаном своей команды.
Тренерская карьера Фэгана началась в любительском клубе «Нельсон», с которым он дважды (в 1950 и 1952 годах) выигрывал титул чемпиона Ланкаширской Комбинации в качестве играющего тренера. В 1954 Фэган стал главным тренером «Рочдейла», а в 1958 году занял пост тренера резервов в «Ливерпуле» Билла Шенкли, войдя в состав знаменитого Бутрума. В 1966 году Джо был переведён на пост тренера первой команды.
После ухода Шенкли из клуба в 1974 году Фэган стал ассистентом нового наставника «Ливерпуля» Боб Пэйсли, эту должность он занимал вплоть до 1983 года. За это время «Ливерпуль» успел стать из команды, которая безуспешно боролась за возвращение в Первый Дивизион, сильнейшим клубом Англии и одним из сильнейших в Европе. «Ливерпуль» регулярно выигрывал чемпионат Англии, несколько раз становился обладателем Кубка Англии и Кубка УЕФА и несколько сезонов подряд выигрывал Кубок Лиги. Вдобавок ко всему команда в период с 1977 по 1981 годы смогла трижды выиграть Кубок европейских чемпионов. В 1983 году Пэйсли вышел в отставку, и его место занял Джо Фэган, которому на тот момент было 62 года. Хотя повторение успехов предшественников было задачей трудновыполнимой, он смог с ней справиться, в первый же сезон у руля клуба выиграв три «больших» трофея — Кубок Лиги, чемпионат Англии и Кубок Чемпионов. До Фэгана ни одному британскому менеджеру не удавалось добиться этого.
В свой второй сезон он стал вице-чемпионом страны, хотя к концу октября команда, потерявшая уехавшего в Италию капитана Грэма Сунесса и травмированного лучшего бомбардира клуба Иана Раша, находилась лишь на 20-м месте в таблице. «Ливерпуль» во второй раз подряд вышел в финал Кубка Чемпионов, но перед матчем Фэган сообщил, что не будет продлевать контракт и по завершении сезона покинет команду. Финальный матч в Брюсселе между «Ливерпулем» и «Ювентусом», последний для «красных» под руководством Фэгана, запомнился, однако, прежде всего тем, что перед его началом в результате столкновений между болельщиками соперничающих клубов, обрушения части ветхого стадиона Эйзель и абсолютной неготовности бельгийской полиции произошла трагедия, которая унесла жизни 39 человек. Сам матч завершился победой «Ювентуса» со счётом 1:0, единственный гол с неправильно назначенного пенальти забил Мишель Платини. После ухода Фэгана руководство «Ливерпулем» перешло к Кенни Далглишу, который стал играющим тренером клуба.
Джо Фэган скончался 30 июня 2001 года после тяжёлой продолжительной болезни.