На аэродромах в районах Луостари и Сальмиярви базировалось до 100 самолетов 5-го воздушного флота. В портах Северной Норвегии находились значительные силы германского флота — линкор «Тирпиц», 14 эсминцев, более 30 подводных лодок, 50 сторожевых кораблей.
Задачу разгрома немецких войск в Заполярье Ставка возложила на Карельский фронт под командованием Мерецкова и Северный флот, которым командовал адмирал А.Г. Головко. К непосредственному участию в операции, получившей название Петсамо-Киркенесская, привлекалась 14-я армия генерал-лейтенанта В.И. Щербакова — 8 стрелковых дивизий, 1 укрепленный район, 5 стрелковых и отдельная танковая бригада, 2 танковых и 2 тяжелых самоходно-артиллерийских полка. Всего: 113 200 человек, 2100 орудий и минометов, около 200 танков и САУ. Северный флот выделял 6 эскадренных миноносцев, 8 подводных лодок, 20 торпедных катеров и 20 000 бойцов. С воздуха советские войска поддерживали 747 самолетов 7-й воздушной армии и 275 машин авиации флота.
Замысел операции заключался в том, чтобы окружить и уничтожить главные силы 19-го горнострелкового корпуса путем глубокого обхода их с юга и одновременного удара с севера. Затем предусматривалось овладеть отобранным у финнов городом Петсамо и развивать наступление к границе с Норвегией.
Согласно плану, утвержденному Ставкой 29 сентября, главный удар наносился левым флангом 14-й армии по наиболее слабому участку немецкой обороны из района южнее озера Чапр в общем направлении на Луостари, Петсамо с целью выхода в тыл основной группировке противника. На правом фланге армии вспомогательный удар наносила специально созданная оперативная группа с задачей сковать неприятельские войска на участке от губы Большая Западная Лица до озера Чапр, не допустить их переброску на направление главного удара и в дальнейшем перейти в наступление в общем направлении на Петсамо. В сочетании с действиями частей морской пехоты с полуострова Средний в направлении на Петсамо, Луостари планировалось окружить и уничтожить группировку противника в районе юго-западнее реки Титовка. Чтобы ввести противника в заблуждение, намечалась демонстративная высадка десанта в районе мыса Пикшуев в Мотовском заливе. Советские подводные лодки должны были блокировать с моря порты Петсамо, Киркенес, активизировать свои действия к северо-западу от острова Вардё.
Наступательные действия войскам предстояло вести в труднопроходимом районе Крайнего Севера, где гранитные скалы и горы с крутыми скатами и отвесными обрывами, ущельями и пропастями чередуются с заболоченными участками. Этот район пересечен многими горными реками и ручьями, малыми и большими озерами. К тому же октябрь выдался особенно дождливым. Обильные осадки вызвали значительный подъем воды в реках, озерах и болотах. Заметно сокращалась продолжительность светлого времени. Из-за низкой облачности, частых и густых туманов, обильных осадков авиация могла действовать в редкие дни и не более 2–3 часов в сутки.
Слабым местом немецкой обороны, по мнению командующего фронтом, являлось наличие больших промежутков между опорными пунктами и ограниченное количество противотанковых средств. Она носила, можно сказать, противопехотный характер. Поэтому Мерецков попросил у Ставки выделить ему полк считавшихся устаревшими и никогда на Севере не применявшихся тяжелых танков КВ. С некоторым недоумением Москва дала 73-й отдельный гвардейский танковый полк прорыва. Для преодоления водных преград было выделено два батальона амфибий.
Операция началась в 8.00 7 октября артиллерийской подготовкой, продолжавшейся 2 часа 35 минут. Затем войска 14-й армии перешли в наступление. Преодолевая упорное сопротивление противника, 131-й стрелковый корпус силами 14-й стрелковой дивизии к 15 часам прорвал главную полосу неприятельской обороны. Основная тяжесть боев в тот день легла на пехоту и орудия сопровождения, так как приданные танки и дивизионная артиллерия из-за бездорожья отстали. В связи с ненастной погодой авиация почти бездействовала. Тем не менее наступление развивалось успешно. Части 14-й дивизии по грудь в ледяной воде с ходу форсировали Титовку и захватили ряд опорных пунктов на второй полосе немецкой обороны. Сложнее складывалась обстановка в полосе 99-го стрелкового корпуса генерал-майора С.П. Микульского. Поднявшись в атаку, стрелковые подразделения первого эшелона, попав под сильный огонь, залегли. Тогда комкор принял решение провести ночную атаку, которая началась ровно в полночь. К 8 утра пехота овладела передним краем противника. Одновременно, не встречая сопротивления, через Титовку переправился 126-й легкий стрелковый корпус под командованием полковника В.Н. Соловьева, а за ним 127-й легкий стрелковый корпус генерал-майора Г.А. Жукова, которые по непролазной тундре начали глубокий обход с юга открытого фланга противника. Все тяжелое вооружение было навьючено на лошадей и оленей.
К исходу дня войска армий прорвали оборону на участке до 6 км по фронту и до 8 км в глубину. Сутки спустя они овладели второй полосой на фронте до 20 км. 126-й корпус, пройдя в условиях полного бездорожья и труднопроходимой местности 30 км, к исходу 8 октября оказался в 12 км южнее Луостари. Это создало реальную угрозу основным силам 19-го немецкого корпуса, находившимся севернее озера Чапр. В связи с этим германское командование отдало приказ на отход своих частей из района Западной Лицы по дороге на Петсамо.
Вечером 9 октября Мерецков уточнил боевые задачи подчиненным. С утра следующего дня армия Щербакова продолжала наступательные действия. Войска ударной группировки действовали на двух изолированных друг от друга направлениях: одна группа наносила удар на север, в направлении Петсамо, другая — на запад, на Луостари. Легкие корпуса, обеспечивая левый фланг, продолжали обходной маневр с целью выйти в район западнее Луостари. По мере продвижения советских войск в глубину обороны сопротивление противника усиливалось. Борьба за каждую высоту, особенно за дороги, носила длительный и упорный характер. Действия войск развивались в сложной, быстро меняющейся обстановке. 131-стрелковый корпус 9 октября овладел рядом сильно укрепленных высот и к утру следующего дня передовыми частями вышел в район озера Каккуринярви, перерезал дорогу Мурманск—Петсамо и тем самым закрыл противнику единственный путь отхода на запад.
Используя успех главной группировки, перешли к активным действиям части морской пехоты. В ночь на 10 октября корабли Северного флота на 30 катерах беспрепятственно высадили 63-ю бригаду морской пехоты — 2837 человек — в районе губы Малая Волоковая. Утром 12-я бригада морской пехоты начала наступление с полуострова Средний. Вскоре ее части соединились с десантом и предприняли совместное наступление на Петсамо. Чтобы избежать полного окружения, немецкие части, оборонявшиеся на перешейке полуострова Средний, начали поспешный отход в юго-западном направлении. В этот же день войска, действовавшие на вспомогательном направлении, перешли к преследованию противника, отходившего из района Большая Западная Лица. Части корпуса, преодолевая инженерные заграждения и слабое сопротивление арьергардов 6-й горнострелковой дивизии и 388-й пехотной бригады, успешно продвигались на запад.
В районе озера Каккуринярви в это время развернулись ожесточенные бои. В течение 10 октября немцы предприняли несколько контратак, но советские части успешно отразили все попытки противника прорваться в западном направлении. Однако 11 октября немцы сумели оттеснить 131-й стрелковый корпус от дороги и вывести остатки своих войск к Петсамо.
99-й стрелковый корпус, разгромив противника в ряде опорных пунктов, вышел на ближние подступы к Луостари и в течение суток отражал ожесточенные контратаки немцев. 126-й корпус продолжал обходной маневр по бездорожью и к утру 10 октября оседлал развилку дорог в 9 км западнее города. Здесь завязались ожесточенные бои с частями 163-й пехотной дивизии, спешно переброшенной в этот район германским командованием из состава 36-го армейского корпуса.
12 октября войска 99-го и 127-го легкого стрелковых корпусов с хода форсировали реку Петсамойоки и ударами с востока, юга и запада овладели Луостари и аэродромом, расположенным южнее этого населенного пункта. В этих боях практически полностью была окружена и уничтожена 2-я горнострелковая дивизия генерала Дегена.
Это создавало выгодные условия для развития дальнейшего наступления на запад, в направлении на Никель, и для удара на Петсамо с юга. Учитывая сложившуюся обстановку, германское командование поставило задачу частям 163-й пехотной дивизии отбросить советские войска на восточный берег Петсамойоки и вернуть Луостари. Одновременно для усиления обороны в районе Петсамо перебрасывались подразделения 210-й пехотной дивизии.
Успешно отражая частью сил безнадежные контратаки 163-й пехотной дивизии, советские войска из района Луостари, введя в бой 7-ю гвардейскую танковую бригаду, нанесли сильный удар в направлении Петсамо. Корпус Соловьева перерезал дорогу Петсамо—Тарнет.