Родился в деревне Тауш Чернушинского района Пермской области. Окончил Таушинскую среднюю школу, Свердловский автодорожный техникум и аэроклуб.
В Красной Армии с 1936 года, в 1938 году окончил оренбургское военное авиационное училище летчиков.
На фронтах Великой Отечественной войны с июня 1942 года. В составе своего авиаполка прошел боевой путь от Сталинграда до столицы фашистской Германии — города Берлина. Принимал участие в Сталинградской битве, Курской битве, под Корсунь-Шевченковским, защищал небо Белоруссии, Украины.
К апрелю 1944 года Степан Гаврилович совершил 325 боевых вылетов, в 42 воздушных боях сбил лично 12 самолётов противника и 9 в группе.
Свою последнюю победу одержал в небе Берлина. 25 апреля 1945 года лётчики 148-го гвардейского истребительного авиационного полка гвардии майор С. Г. Иванов и младший лейтенант Б. В. Бочков на самолётах Як-9 вступили в бой в 35 километрах восточнее Берлина с двумя FW-190 и сбили их.
Всего за годы войны С. Г. Иванов совершил 463 боевых вылета, сбил 22 самолетов противника, из них лично — 13 и в группе — 9. Налетал свыше 2150 часов или 1 миллион 300 тысяч километров. Уничтожил много вражеских солдат и офицеров, а также — фашистской техники.
После войны продолжал службу в Военно-Воздушных Силах СССР. В 1951 году окончил Военно-воздушную академию. С 1959 года полковник С. Г. Иванов — в запасе.
Жил в городе Евпатория (Крым, Украина). Работал директором станции юных техников. Скончался 19 июля 1983 года.