Родился 8 сентября 1912 года в селе Чёрный Яр ныне Черноярского района Астраханской области в семье рабочего. По национальности русский. Член ВКП(б)/КПСС с 1944 года. Окончил начальную школу, работал рабочим на медико-санитарной станции.
В Красной Армии — с октября 1941 года. В боях Великой Отечественной войны — с июля 1942 года.
В составе 62-й армии принимал участие в Сталинградской битве. Был награжден медалями «За оборону Сталинграда», «За боевые заслуги», «За отвагу». Особо отличился при форсировании реки Висла в районе города Магнушев (Польша).
1 августа 1944 года, работая старшим лодочного расчета, старшина Завьялов получил задание: доставить к берегу два парома, выведенные из строя авиацией противника и находившиеся на середине реки Висла.
Противник подверг переправу ожесточенной бомбардировке, но лодочный расчет старшины Завьялова достиг левого берега, забрал в лодку раненых и переправил их в полевой госпиталь. После этого расчет Завьялова совершил три рейса и отбуксировал паромы, на которых находилась техника двух артиллерийских полков. Все рейсы были совершены в условиях непрекращающегося артиллерийского и минометного огня.
За исключительное мужество и доблесть при переправе боевой техники Указом Президиума Верховного Совета СССР от 24 марта 1945 года старшине Сергею Алексеевичу Завьялову присвоено звание Героя Советского Союза с вручением ордена Ленина и медали «Золотая Звезда» (№5800).
После войны демобилизован. Жил в Астрахани. Умер 29 сентября 1998 года.
Награждён орденами Ленина, Отечественной войны 1-й степени, Красной Звезды, медалями.