С 30 августа по 2 ноября 1944 года войска 1-го и 2-го Белорусских фронтов проводили Ломжа-Ружанскую наступательную операцию в Восточной Польше с целью захвата плацдарма на реке Нарев. Он был необходим как исходный рубеж для продолжения дальнейшего наступления Красной Армии в Восточную Пруссию. Но упорное сопротивление Вермахта и перенос тяжести сражения 1-го Белорусского фронта на Варшавское направление, не позволили это сделать в рамках операции «Багратион».
Только 22 августа 1944 года командующий войсками 1-го Белорусского фронта К. К. Рокоссовский подписал директиву о наступлении на рубеж реки Нарев и захвате плацдармов на западном берегу. 29 августа Ставка Верховного Главнокомандования обязала 1-й и 2-й Белорусский фронты перейти к жёсткой обороне и срочно привести войска в порядок, а правому крылу 1-го Белорусского фронта и левому крылу 2-го Белорусского фронта — продолжить наступление и к 4-5 сентября выйти на рубеж реки Нарев в районах Пултуск-Сероцк-Остроленка, захватить плацдармы на западном берегу, где также перейти к жёсткой обороне. С момента начала выполнения этих задач 30 августа, Белорусская операция считается оконченной, а Ломжа-Ружанская операция — начавшейся. Координацию и общее руководство действиями 1-го и 2-го Белорусских фронтов осуществлял Маршал Советского Союза Г. К. Жуков.
Оборону занимали части немецкой 2-й армии из состава группы армий «Центр». Немецкое командование стремилось измотать Красную Армию на подступах к Нареву, в течение выигранного времени завершить сооружение оборонительного рубежа по Нареву и не допустить его форсирования.
Хотя началом операции считается 30 августа, фактически с 27 августа все три армии приступили к выполнению поставленной задачи. Наступление велось в условиях лесисто-болотистой местности, редкие и плохие дороги были перекрыты опорными пунктами противника. В борьбе с ними широко применялись обходы с флангов по лесам и перехват коммуникаций. К 3 сентября войска 48-й армии прорвали спешно подготовленный немцами промежуточный оборонительный рубеж в 15-20 километрах восточнее реки Нарев. К Нареву были высланы заранее сформированные передовые отряды. Особенно успешно действовали они в 48-й армии. Утром 4 сентября они вышли к Нареву и с ходу форсировали его в районе населенного пункта Шарлат. Этот плацдарм и стал основой для стратегически важного Ружанского плацдарма. Командующий армией срочно направил на этот плацдарм основные силы 29-го и 42-го стрелковых корпусов. К исходу 5 сентября плацдарм был расширен до 8 километров по фронту и на 4,5 километра в глубину, на него переброшена противотанковая артиллерия и спешно началось сооружение рубежей обороны.
Переправа через реку Нарев.
Бой на Ружанском плацдарме.
Немецкое командование спешно перебросило в район Ружан 3 пехотные дивизии, 6-ю танковую дивизию, 209-ю бригаду штурмовых орудий. Имея в своем составе около 150 танков и штурмовых орудий, немцы перешли в контрнаступление, пытаясь сбросить советские войска в Нарев. До 12 сентября шли упорные и крайне ожесточенные бои. Отражая в сутки по 5-7 атак, войска 48-й армии не только стойко оборонялись, но и расширили плацдарм до 11 километров по фронту и до 8 километров в глубину. К 12 сентября противник лишился большинства танков и выдохся, боевые действия на плацдарме затихли, велись только бои местного значения по улучшению занимаемых позиций.
Севернее войска 3-й армии 6 сентября также вышли передовыми отрядами к Нареву и в этот день штурмом овладели городом и крепостью Остроленка. Однако, воспользовавшись их отставанием, немецкое командование успело занять рубеж обороны по Нареву и укрепило его. Форсирование в 3-й армии было назначено на 8 сентября, но из-за отставания артиллерии и необходимости пополнения войск перенесено на 14 сентября, а затем на 1 октября. За это время севернее войска 2-го Белорусского фронта завершали ликвидацию остатков немецких войск на восточном берегу Нарева, в том числе 3-й армии в ночь с 12 на 13 сентября овладели сильно укреплённым городом Ломжа, а войска 49-й армии 14 сентября штурмом заняли город Новогруд. 23 сентября командующий фронтом Г. Ф. Захаров отменил операцию по форсированию Нарева 3-й армией, приказав ей переправиться на занятый 48-й армией плацдарм и принять от неё часть оборонительного рубежа. Сам Ружанский плацдарм был к тому времени сильно укреплён, на нём были построены 2 сплошных оборонительных рубежа и большое количество укреплений.
Директивой Ставки Верховного Главнокомандования от 19 сентября, с 21 сентября 48-я армия была передана из 1-го Белорусского фронта в 2-й Белорусский фронт, поставлены новые задачи по расширению плацдарма. 4 октября 1944 года резко обострилась обстановка на соседнем Сероцком плацдарме: скрытно подтянув 3 танковые и 3 пехотные дивизии, немецкое командование перешло во внезапное наступление и оттеснило советские войска, сократив плацдарм почти на 70% и создав угрозу его полной ликвидации. С целью оказания помощи, 10 октября 3-я и 48-я армии на Ружанском плацдарме перешли в наступление. Несмотря на то, что немецкое командование успело укрепить свои позиции (построены 3 рубежа обороны), к 15 октября удалось прорвать два из них и частично — третий рубеж. Ружанский плацдарм был расширен до 43 километров по фронту и до 20 километров в глубину.
С этого момента на плацдарме велись бои местного значения и непрерывное наращивание сил для будущего наступления. Войска 48-й армии проводили частные операции, пытаясь продвинуться на соединение с Сероцким плацдармом (в первой операции армия успеха не имела, во второй продвинулась на несколько километров и заняла ряд населённых пунктов). Операция считается завершенной 2 ноября. Но директива на жёсткую оборону была отдана Ставкой ВГК только 5 ноября.
По итогам операции Красной Армией был захвачен, удержан и значительно расширен Ружанский плацдарм. Он имел важное стратегическое значение — именно с него войска 2-го Белорусского фронта нанесли главный удар в Восточную Пруссию в ходе Млавско-Эльбингской операции в январе 1945 года. Потери советских войск на плацдарме составили 11 771 человек — безвозвратные, 45 850 человек — санитарные. По советским данным, за сентябрь 1944 года части 2-го Белорусского фронта уничтожили 13 115 солдат противника и захватили 355 пленных, за октябрь 1944 года уничтожили 16 186 солдат противника и захватили 1 129 пленных, итого — 29 301 убитых, 1 484 пленных.