Родился 19 ноября 1914 года в селе Ясно (ныне — Порховского района Псковской области). Окончил 5 классов. Работал в колхозе.
В 1930-х годах переехал в Ленинград.
В июне 1941 года был призван в Красную Армию.
На фронте в Великую Отечественную войну с первых дней.
К лету 1944 года гвардии старший сержант Горшанов командовал отделением 271-го гвардейского стрелкового полка 88-й гвардейской стрелковой дивизии.19 августа 1944 года в бою у населённого пункта Ясинец гвардии старший сержант Горшанов заменил раненого командира и продолжал руководить подразделением до выполнения боевой задачи. Вывел из строя до 10 противников и пулемёт.Приказом от 7 сентября 1944 года гвардии старший сержант Горшанов Иван Григорьевич награждён орденом Славы 3-й степени.3 февраля 1945 года при овладении населённым пунктом Вуден помощник командира взвода первым вместе с подчиненными ворвался в опорный пункт и уничтожил засевших в одном из домов противников, чем содействовал успеху других подразделений. Истребил около 9 немецких солдат.Приказом от 31 марта 1945 года гвардии старший сержант Горшанов Иван Григорьевич награждён орденом Славы 2-й степени.Вновь отличился при штурме столицы вражеского рейха в апреле — начале мая 1945 года.
В боях на улицах Берлина лично уничтожил до 20 противников и 4 взял в плен.Указом Президиума Верховного Совета СССР от 15 мая 1946 года за образцовое выполнение заданий командования в боях с захватчиками гвардии старший сержант Горшанов Иван Григорьевич награждён орденом Славы 1-й степени. Стал полным кавалером ордена Славы.
В 1945 году был демобилизован. Жил в Норильске, работал на шахте. Затем переехал в Ленинград. Скончался 26 ноября 1979 года. Похоронен в Санкт-Петербурге на Ново-Волковском кладбище.Награждён орденами Славы 3-х степеней, медалями.Примечания^ Перейти к: 1 2 3 Наградной лист в электронном банке документов «Подвиг народа» . Проверено 28 сентября 2015.