По замыслу советского командования, одновременными ударами с севера и юга планировалось разбить наиболее боеспособные части группы армий «Центр». Уже в ходе развернувшегося контрнаступления Ставка поставила иную цель: нанести поражение всей группе армий.
5 декабря в контрнаступление перешел Калининский, 6 декабря — Западный фронт и правое крыло Юго-Западного фронта. Несмотря на тяжелые условия (отсутствие превосходства в силах, сильные морозы, глубокий снежный покров), контрнаступление развивалось успешно. 9 декабря советские войска освободили Рогачево, Венев, Елец, 11 декабря — Сталиногорск (ныне Новомосковск), 12 декабря — Солнечногорск, Ефремов, 16 декабря — Калинин (ныне Тверь).
Во второй половине декабря развивалось наступление советских войск правого крыла Западного фронта. 19 декабря они вышли на рубеж pек Лама и Руза. Левое крыло Западного фронта и Брянский фронт 25 декабря на широком фронте вышли к реке Оке. 28 декабря был освобожден Козельск, 30 декабря после многодневных боев — Калуга, в начале января — Мещовск и Мосальск. Армии центра Западного фронта 26 декабря освободили Наро-Фоминск, 2 января 1942 года — Малоярославец, 4 января — Боровск. К 7 января 1942 года советские войска нанесли поражение соединениям группы армий «Центр», прорвавшимся на ближние подступы к Москве, и успешно выполнили поставленную задачу.
Битва за Москву завершилась 20 апреля 1942 года. В результате контрнаступления под Москвой и последующего общего наступления советских войск враг был отброшен на запад, освобождены Московская и Тульская области, многие районы Калининской (ныне Тверской) и Смоленской областей, Германия потерпела первое крупное поражение во Второй мировой войне, немецкий план молниеносной войны «Барбаросса» потерпел крах. Но несмотря на достигнутые успехи, немецкая армия не была разбита, и стратегическая инициатива продолжала оставаться в её руках.