С июля 1941 года — командир 778-го артиллерийского полка 247-й стрелковой дивизии в 31-й армии Резервного фронта, с которой участвовал в начале оборонительного этапа битвы за Москву. С октября 1942 — начальник артиллерии 249-й стрелковой дивизии в 22-й и 4-й ударной армиях на Калининском и Северо-Западном фронтах. Дивизия в конце 1941 года держала оборону на участке озеро Селигер — река Волга. В январе 1942 года дивизия наступала в Торопецко-Холмской операции, действуя в полосе главного удара. В сложных условиях зимы и сильных холодов бойцы прошли менее чем за месяц с боями до 200 километров, освободив крупные населённые пункты Пено, Переходовец, Андреаполь, Торопец и Велиж. За эту операцию в марте 1942 года дивизии было присвоено гвардейское звание и она стала именоваться 16-й гвардейской стрелковой дивизией, а начальник артиллерии дивизии полковник Шафранов удостоен своего первого ордена — ордена Красного Знамени. Далее в составе 30-й армии Западного фронта дивизия участвовала в Первой Ржевско-Сычевской операции.