Родился в 1908 году в деревне Нижний Армязь (по другим данным Верхний Армязь[1]) Ершовской волости Осинского уезда Пермской губернии (ныне Камбарский районУдмуртской республики) в крестьянской семье. Окончил 7 классов. Работал в Ершовском леспромхозе. В 1932—1935 годах прошёл службу в Красной Армии. После демобилизации до 1941 года работал ветеринарнымфельдшером в селе Сайгатка Фокинского района Молотовской области.
19 сентября 1942 года противник после двухчасовой артиллерийской подготовки пошёл в контратаку на рубеж. С. А. Завьялов, находясь в дзоте, открыл огонь из станкового пулемёта по наступающей цепи, насчитывающей около 200 человек. Близким разрывом была завалена амбразура дзота, а С. А. Завьялов ранен в лицо. Однако воин выкатил пулемёт из дзота и открыл огонь по врагу. Снова был ранен, на этот раз в голову, но огонь не прекратил. К тому времени, когда пулемётчик уничтожил 48 солдат и офицеров противника, осколком были разбиты короб и кожух пулемёта. С. А. Завьялов перевооружился автоматом и уничтожил ещё 12 человек. При этом опять был ранен — осколком снаряда были выбиты несколько зубов. Перевязав в блиндаже раны, С. А. Завьялов отправился на огневой рубеж, но по дороге был ранен осколком в бедро, после чего уже не смог передвигаться.