Иван Георгиевич Спасский родился 24 февраля (8 марта по новому стилю) 1904 года в городе Нежин Черниговской губернии в семье настоятеля нежинского Николаевского собора протоиерея Георгия (Юрия) Спасского. В 1914 году поступил в нежинскую классическую гимназию при Историко-филологическом институте, в 1921 году — Нежинский институт народного образования. После его окончания в 1925 году от учёного совета института получил направление в Ленинградский университет. В 1928 году окончил Институт языковедения и истории материальной культуры при ЛГУ, где подготовил к защите дипломную работу о народных украинских монетовидных украшениях — дукачах. Однако работа осталась незащищенной и была опубликована только в начале 1970-х гг. После окончания учебы в ЛГУ вернулся в Нежин, где принял участие в создании Нежинского окружного музея, став первым его заведующим (формально музей был открыт за 3 месяца до окончания И.Г. Спасским университета и он был назначен его директором еще будучи студентом).
В 1930 году перешёл на работу в Харьковский археологический институт старшим научным сотрудником. Участвовал в археологических экспедициях, а также в археологической разведке в зоне строительства ДнепроГЭС. В 1932 году приглашен на работу в Ленинград в отдел нумизматики Государственного Эрмитажа заведующим секцией медалей.
В январе 1934 года Спасский был арестован, обвинён в принадлежности к несуществующей Русской национальной партии, осуждён и сослан на поселение в Казахстан. Основанием для осуждения, по словам дочери Ивана Спасского Лады Вуич, было в том числе то, что Спасский готовил в Харьковском историко-художественном музее экспозицию средневекового украинского оружия; суд счёл, что на самом деле это была попытка вооружить местное фашистское подполье (средневековыми казацкими саблями и палашами (sic!)). В том же 1934 году созданный в том числе усилиями Спасского Нежинский окружной музей был закрыт указом наркома образования Украинской ССР как «националистический», а его экспозиция фактически уничтожена.
Спасский был освобождён в 1938 году, но вернуться на прежнюю работу, как судимый по политической статье, не мог. Некоторое время работал театральным художником в Череповце. С первых дней Великой Отечественной войны воевал рядовым в Карелии, был ранен, награждён медалями. В 1946 году вернулся в Ленинград, где при поддержке директора Эрмитажа И. А. Орбели снова был принят на работу в отдел нумизматики, а вскоре занял пост его главного хранителя. Занимался послевоенным восстановлением и расширением нумизматической коллекции Эрмитажа, вёл с ней активную научно-исследовательскую работу. В 1947 году защитил кандидатскую диссертацию, а в 1962 году — докторскую.
В 1956 году дело Спасского было пересмотрено судом, а сам он полностью реабилитирован.
В 1964 году к 60-летнему юбилею был награждён орденом Трудового Красного Знамени. В 1974 году в честь 70-летия Спасского была выпущена памятная медаль.
И. Г. Спасский опубликовал более сотни научных работ, в том числе такие значительные, как историко-нумизматический очерк «Русская монетная система» (впервые издан в 1957 году, впоследствии расширен и дополнен, классическое четвёртое издание — 1970 год), «Талеры в русском денежном обращении 1654—1659 годов» (1960), «Ордена до 1917 года» (1963), «Тысячелетие древнейших монет России. Сводный каталог русских монет X—XI веков» (в соавторстве с М. П. Сотниковой, 1983).
Иван Георгиевич Спасский скончался в Ленинграде 4 ноября 1990 года. Похоронен на Волковском православном кладбище Санкт-Петербурга.
11-12 марта 2004 г. состоялись чтения и выставка (совместная с Монетным двором) «Хранитель Эрмитажа», посвященные 100-летию со дня рождения российского (советского) исследователя нумизматики — доктора исторических наук Ивана Георгиевича Спасского (1904—1990).
11-12 ноября 2010 г. в Государственном Эрмитаже состоялись научные чтения, посвященные 20-летию со дня смерти И. Г. Спасского.