Родился в 1908 году в деревне Нижний Армязь (по другим данным Верхний Армязь ) Ершовской волости Осинского уезда Пермской губернии. (ныне Камбарский район Удмуртской республики) в крестьянской семье. Окончил 7 классов. Работал в Ершовском леспромхозе. В 1932-1935 годах прошёл службу в Красной Армии. После демобилизации до 1941 года работал ветеринарным фельдшером в селе Сайгатка Фокинского района Молотовской области.
Призван в РККА в июне 1941 года, начал воевать с 15 сентября 1942 года у деревни Сычево Старорусского района Ленинградской (ныне Новгородской) области. В этот день в атаке части 254-й стрелковой дивизии овладели тактически важным укреплённым рубежом.
19 сентября 1942 года противник, после двухчасовой артиллерийской подготовки, пошёл в контратаку на рубеж. С.А. Завьялов, находясь в дзоте, открыл огонь из станкового пулемёта по наступающей цепи, насчитывающей около 200 человек. Близким разрывом была завалена амбразура дзота, а С.А. Завьялов ранен в лицо. Однако воин выкатил пулемёт на дзот, вновь открыл огонь и вновь был ранен, на этот раз в голову, но огонь не прекратил. К тому времени когда пулемётчик уничтожил 48 солдат и офицеров противника, осколком были разбиты короб и кожух пулемёта. С.А. Завьялов перевооружился автоматом и уничтожил ещё 12 человек и снова был ранен - осколком снаряда были выбиты несколько зубов. Перевязав в блиндаже раны, С.А. Завьялов вновь отправился на огневой рубеж, но по дороге был ранен осколком в бедро, после чего уже не смог передвигаться.
Указом Президиума Верховного Совета СССР С.А. Завьялову 14 февраля 1943 года присвоено звание Героя Советского Союза, вручена Медаль «Золотая Звезда» за № 818.
После демобилизации в 1943 году жил в селе Сайгатка, впоследствии в городе Чайковском Пермской области.
Умер 28 апреля 1963 года. В его честь назван район в городе Чайковском — Завьялово и там же установлен бюст героя.