20 stycznia 1945 roku Nowy Sącz został wyzwolony spod okupacji niemieckiej przez wkraczające oddziały 38 Armii gen. płk. Kiryła Moskalenki, wchodzące w skład 4 Frontu Ukraińskiego gen. armii Iwana Pietrowa.
12 stycznia 1945 roku wojska radzieckie w sile trzech armii (38 Armia, 1 Armia Gwardii, 18 Armia) rozpoczęły operację zachodnio-karpacką. Jej celem było przerwanie linii frontu ustabilizowanego od jesieni 1944 roku na linii Szczucin, Jasło, Krempna i wyparcie sił niemieckich z terenów północnych Karpat oraz Pogórza Karpackiego. W ciągu sześciu dni trwania operacji Armia Czerwona wyparła wojska niemieckie od 100 do 150 km na zachód.
Plany operacji zakładały uderzenie prawego skrzydła sił 4 Frontu Ukraińskiego gen. armii Iwana Pietrowa z rejonu Jasła w stronę Krakowa i Śląska. Pozostałe siły radzieckie miały za zadanie kierować swoje uderzenia w kierunku ogólnym na Poprad oraz Nowy Targ. Zadaniem frontu miało być zapewnienie połączenia pomiędzy uderzającym z Polski na Berlin centralnym zgrupowaniem Armii Czerwonej (1 Front Białoruski i 1 Front Ukraiński) a zgrupowaniem południowym (2 Front Ukraiński i 3 Front Ukraiński).
Na tej podstawie dowództwo 4 Frontu Ukraińskiego opracowało plan, który przewidywał użycie na kierunku krakowskim 38 Armii gen. płk. Kiryła Moskalenki w sile dziewięciu dywizji, która od północy miała ściśle współdziałać z 60 Armią gen. płk. Pawła Kuroczkina wchodzącą w skład 1 Frontu Ukraińskiego, a od południa z 1 Armią Gwardii gen. płk. Andrieja Grieczki. Przez cały czas trwania operacji, sił uderzeniowe miały być wspierane przez 8 Armię Lotniczą gen. lejt. Wasilija Żdanowa, stacjonującą na lotniskach w rejonie Krosna i Sanoka. Osiągniecie rejonu Nowego Sącza zakładano szóstego – siódmego dnia trwania operacji.

Działania obronne na Sądecczyźnie prowadziły jednostki 17 Armii (XI Korpus Armijny SS oraz LIX Korpus Armijny) gen. piechoty Friedricha Schulza (rejon między Wisłą a Karpatami) graniczące od północy z 4 Armią Pancerną gen. wojsk panc. Fritza-Huberta Gräsera oraz na południu z Grupą Armijną Heinrici. Siły te stanowiły trzon Grupy Armii A gen. płk. Josefa Harpe (od 17 stycznia gen. płk. Ferdinanda Schörnera).
Warto zaznaczyć, że od końca sierpnia 1944 roku (zakończenie operacji lwowsko-sandomierskiej oraz ustabilizowanie się linii frontu na wschodzie) do chwili rozpoczęcia radzieckiej ofensywy w styczniu 1945 roku na Ziemi Sądeckiej trwały intensywne prace fortyfikacyjne przed spodziewaną radziecką ofensywą zimową. Jak czytamy w rozdziale „Działania wojenne na Sądecczyźnie w styczniu 1945 roku” autorstwa Piotra Sadowskiego w publikacji „Masz synów w lasach, Polsko…”:
„Ważnym punktem obrony była Kotlina Sądecka, gdzie pomiędzy rejonem Chełmca a Podegrodzia fortyfikacje rozbudowano etażowo – pierwsza linia złożona z dwóch do trzech transzei znajdowała się w dolinie na zachodnim brzegu Dunajca, druga linia przebiegała stokami wzgórz okalających kotlinę od zachodu. W drugiej linii znajdowały się stanowiska artylerii, panującej na drogami wylotowymi z Nowego Sącza. Fortyfikacje posiadały system przeszkód przeciwpancernych i przeciwpiechotnych, towarzyszyły im pola minowe.”
Ofensywa styczniowa
Ofensywa spod Jasła rozpoczęła się wczesnym rankiem 15 stycznia 1945 po trwającym przeszło 95 minut przygotowaniu artyleryjskim na silnie umocnione pozycje obronne armii niemieckiej. Zmasowany ogień artyleryjski osłabiając pierwszą linię obrony umożliwił natarcie pierwszym uderzeniowym jednostkom radzieckim. Niemcy za wszelką cenę usiłowali powstrzymać lub przynajmniej opóźnić tempo nacierających wojsk nieprzyjaciela. Pod naporem miażdżącej przewagi sił Armii Czerwonej, wojska niemieckie ponosząc duże straty w ludziach i sprzęcie bojowym zaczęły wycofywać się ze swych pozycji obronnych. 16 stycznia po zaciętych walkach ulicznych zajęto Jasło, następnie miejscowości: Biecz, Żmigród i Zagórzany. W konsekwencji bezpośredniego zagrożenia dowództwo XI Korpusu SS przeniosło swoją kwaterę z Gorlic do Nowego Sącza.
Tego samego dnia dokonano również pierwszego silnego nalotu bombowego na Nowy Sącz. O godzinie 12:50 grupa złożona z 14 samolotów IŁ-2 z 525. Pułku lotnictwa szturmowego zaatakowała stację kolejową oraz stojące na peronach składy. 17 stycznia po ciężkich walkach zajęto Gorlice, Zakliczyn oraz Wojnarową. 18 stycznia nacierające wojska pokonawszy kilkanaście kilometrów dotarły nad Dunajec zdobywając nieuszkodzony most drogowy pod Kurowem. Z tym wydarzeniem wiąże się jeden z najbardziej znanych epizodów walk na Sądecczyźnie. Jak pisze Piotr Sadowski w swojej publikacji:
„Patrol dwóch czołgów T-34, dowodzony przez dowódcę kompanii III batalionu czołgów z 31. Brygady pancernej Gwardii, starszego lejtnanta gwardii Iwana Czupiłko, przedarł się niezauważony przez niemieckie linie, a następnie nierozpoznany kierował się za kolumną niemieckich pojazdów, Dotarł w ten sposób do Dąbrówki, a następnie o godzinie 5.15 zajął nietknięty most na Dunajcu pod Kurowem (…), którego dzięki akcji AK z oddziału „Topora” nie udało się Niemcom wysadzić (…) Nieco później czołgi ostrzelały znajdującą się na przeciwległym brzegu Dunajca stację kolejową w Marcinkowicach„
Most pod Kurowem miał ważne znaczenie dla obydwu stron. Jego zdobycie ułatwiło wojskom radzieckim pokonanie trudnej przeszkody wodnej, jakim był Dunajec bez jego forsowania. Ułatwiło także szybkie przerzucenie na zachodni brzeg ciężkiego sprzętu i zaopatrzenia. Zaś dla strony niemieckiej most był dogodną drogą odwrotu dla wycofujących się jednostek niemieckich. Dlatego miał on zostać wysadzony dopiero gdyby znalazł się w bezpośrednim zasięgu zbliżających się jednostek radzieckich.
Wysadzenie zamku
18 stycznia o godz. 5.20 tuż przed wkroczeniem do miasta od północy wojsk radzieckich nad miastem rozległa się potężna eksplozja. Wybuch zgromadzonych na zamku materiałów wybuchowych spowodował całkowite jego zniszczenie wraz z sąsiadującymi z nim kamienicami. Śmierć poniosła również niemiecka załoga zamku (według oprac. D. Golika i P. Sadowskiego na podst. Wykazów fundacji „Pamięć” śmierć poniosło najprawdopodobniej dwunastu żołnierzy niemieckich).
Pomimo upływu dziesiątków lat od tego wydarzenia nadal trwają spory w kwestii celu jak i sposobu wysadzenia zamku. W okresie PRL-u funkcjonowała opinia, że wysadzenie zamku miało zniszczyć materiały wybuchowe przeznaczone do późniejszego zaminowania miasta. Jednak ta wersja w świetle nowych faktów wydaje się mało prawdopodobna. Choć faktem jest, że zamek w czasie okupacji pełnił funkcję koszar oraz magazynu broni dla miejscowego garnizonu i oddziałów frontowych.
Wbrew obiegowej opinii miasto nie miało być bronione za wszelką cenę z uwagi na to, że wojska niemieckie wycofywały się w kierunku południowo-zachodnim, a Nowy Sącz mimo bycia głównym węzłem komunikacyjny regionu nie miał żadnego większego znaczenia strategicznego. Najprawdopodobniej jednak na terenie zamku znajdowały się materiały wybuchowe oraz amunicja przeznaczona dla oddziałów frontowych. Niektóre źródła podają że głównie składowano tam miny oraz kilkanaście sztuk granatników ppanc. Również nie jest oczywistym kto był inicjatorem samej akcji. Piotr Sadowski tak komentuje kwestie wysadzenia zamku:
„Do dziś trwają spekulacje, w jaki sposób doszło do wybuchu i ewentualnie, kto wydał rozkaz wysadzenia zamku. Inspiracje ku tej akcji przypisuje sobie m.in. Aleksiej Botian (ps”Alosza”), oficer NKWD, członek sztabu zgrupowania ppłk. Iwana Zołotara. Sam dowódca zgrupowania wskazuje na minę zegarową, umieszczoną przez własny patrol minerski współpracując z bojownikami z Batalionów Chłopskich”

Czy w takim razie zniszczenie zabytku architektury, jakim był zamek było właściwie bezzasadne? Na to pytanie zdaje się odpowiadać Janusz Roszko, autor wielu reportaży poświęconych Sądecczyźnie, który podsumował to słowami:
„W powojennych rozmowach polskich i radzieckich dowódców partyzanckich z Sądecczyzny wyjaśniono: nikt konkretnie nie stwierdził, że materiały wybuchowe w podziemiach zamku były przeznaczone do wysadzenia miasta”.
Część grupy szybkiej 38 Armii w składzie 31 Brygady Pancernej Gwardii oraz 211 Dywizji Strzelców (67 Korpus Strzelców), wypierając wycofujące się wojska niemieckie wyszły na wschodnie i północno-wschodnie przedpola miasta. W trakcie wiązania sił niemieckich przez 31 Brygadę Gwardii, część jednostek 211 Dywizji Strzeleckiej płk. Tomiłowskiego przekroczyły Dunajec wykorzystując zajęty most pod Kurowem i uderzyły na południe wzdłuż lewego brzegu rzeki. Odcięto w ten sposób możliwość wycofania się na zachód oddziałom niemieckim przebywającym w mieście
W tym samym czasie widząc zbliżające się od północy wojska radzieckie Niemcom udało się wysadzić most drogowy na Kamienicy (obecnie most im. Sybiraków), uniemożliwiając w ten sposób przekroczenie rzeki w tym miejscu.
Walki w mieście
19 stycznia 31 bryg. pancerna oraz 241 Dywizji piechoty toczyły dalsze walki o północny skraj miasta. Prowadząc walki uliczne na przedmieściach, dochodząc do wieczora do ul. Lwowskiej w rejonie skrzyżowania z ul. Naściszowską oraz Gołąbkowic. W czasie trwania walk w mieście Niemcy zdążyli wysadzić obie przeprawy na Dunajcu. Wedle informacji zawartych w publikacji P. Sadowskiego podczas walk o Nowy Sącz zniszczono lub uszkodzono kilka czołgów OT-34 (była to modyfikacja czołgu T-34 wyposażonego w miotacz ognia, montowany w miejsce kadłubowego karabinu maszynowego) z III batalionu 31 bryg. pancernej. Jeden z nich został zniszczony nieopodal ul. Naściszowskiej, kolejny z czołgów został uszkodzony w rejonie ulicy Kołłątaja, a po kolejnym trafieniu zapalił się powodując śmierć trzyosobowej załogi. Z działających w mieście kilku ciężkich haubic samobieżnych ISU-152 jedna z nich została rozbita nieopodal mostu na Łubinką.
Za sprawą działań piechoty wraz z czołgami udało się wyprzeć stawiające opór jednostki niemieckie za rzekę Kamienicę, zdobywając przy tym nieuszkodzony most (obecnie jest to most im. Adama Michalewskiego na ulicy Lwowskiej), którego Niemcom nie udało się wysadzić. Dzięki temu możliwe było kontynuowanie natarcia w centrum miasta gdzie Niemcy nadal stawiali opór. Jak czytamy w rozdziale „Działania wojenne na Sądecczyźnie w styczniu 1945 roku”
„W nocy z 19/20 styczna, 0 2.00 rozpoczęto gwałtowny ogień artyleryjski na pozycje przeciwnika, a następnie obie dywizje wznowiły natarcie. Do 6.00 całkowicie oczyszczono od nieprzyjaciela północne dzielnice Nowego Sącza. 121. DS. wraz z 318. Pułkiem 241. DS. zdołały przełamać obronę na linii Kamienicy i nacierały w kierunku stacji kolejowej. Tu dwa pułki (383. I 318.) zwróciły się frontem na północ, w celu odseparowania niemieckich kontrataków o strony centrum miasta, wspartych nielicznymi pojazdami pancernymi. Rejon dworca udało się utrzymać”
Po dwóch dniach walk (18-20 stycznia) centrum miasta zostało wyzwolone, a siły niemieckie nie mogąc stawić skutecznego oporu ok. godziny 11:00 wycofały się w kierunku St. Sącza, Podegrodzia i dalej za Krościenko. Walki w mieście ostatecznie wygasły późnym popołudniem 20 stycznia.
Wieczorem 20 stycznia o godzinie 20:00 dla uczczenia tego sukcesu 4 Frontu Ukraińskiego w Moskwie oddano 20 salw artyleryjskich z 224 dział, a Nowy Sącz został wymieniony w komunikacie wojennym. W ciągu 6 dni działań zaczepnych front przesunął się na zachód o prawie 100 km.
Bilans wyzwolenia
W świetle analizy przeprowadzonej przez P. Sadowskiego w walkach o wyzwolenie Sądecczyzny poległo blisko 320 żołnierzy radzieckich, w tym 79 na terenie miasta (niektóre źródła podają błędne zawyżone dane sięgające nawet 700 poległych). Spoczywają oni w zbiorowych mogiłach na cmentarzu komunalnym przy ul. Rejtana. Natomiast straty po stronie niemieckiej są bardzo trudne do oszacowania. Przyjmuje się, że w wyniku styczniowej ofensywy śmierć poniosło ok. 300 niemieckich żołnierzy.
Walki w mieście spowodowały, że Nowy Sącz należał do najbardziej zniszczonych miast Małopolski. Obiekty mieszkalne, budynki użyteczności publicznej i przemysłowe zostały w 60 proc. zniszczone. W ciągu niespełna dwóch dni trwania walk od sowieckiego i niemieckiego ostrzału zginęło kilkudziesięciu sądeczan, w tym m.in. Helena Mrówka oraz Halina Szurmiakowa – harcerka, uczestniczka tajnego nauczania podczas okupacji. Również bilans całej wojny był dla Nowego Sącza bardzo niekorzystny. W 1939 roku miasto liczyło blisko 34 000 mieszkańców a w 1946 roku niespełna 23 000.

Komendantem wojennym miasta został płk gwardii Iwan Nagatkin. Pierwszym prezydentem Nowego Sącza został przedwojenny włodarz miasta Roman Sichrawa (do kwietnia 1945 roku, jego następcą został Józef Konieczny). Dla mieszkańców miasta najgorsze było pierwsze kilkanaście miesięcy „wyzwolenia”. Wtedy przez miasto przetaczały się dziesiątki tysięcy żołnierzy radzieckich, a w mieście funkcjonowały szpitale polowe (między styczniem a listopadem 1945 w Nowym Sączu stacjonowało przeszło dwanaście jednostek szpitalnych). Jak czytamy w rozdziale „Pomnik Chwały Armii Czerwonej w Nowym Sączu – Dzieje Zakłamania” autorstwa Leszka Zakrzewskiego, który przytacza fragmenty raportów do Urzędu Wojewódzkiego przez władze miasta i powiatu:
„(…) Po wypędzeniu Niemców po paromiesięcznym pobycie armii czerwonej w tutejszym powiecie, nastrój tutejszej ludności stale się pogarsza (…) wypadki obrabowania ludności z odzieży i zegarków trafiają się dosyć często, nie brak też wypadków ciężkiego uszkodzenia ciała przez postrzelenie ludzi za to, że pijanemu osobnikowi nie chciał przejeżdżający oddać roweru, nie brak przypadków bicia ludzi przez pijanych żołnierzy sowieckich. Nie brak też przypadków zgwałceń (…) Napady rabunkowe dokonywane przez osobników ubranych w mundury rosyjskie są nie tylko na porządku dziennym, ale przybierają zastraszające formy.”
Można śmiało stwierdzić, iż „wyzwolenie” ziem polskich przez Armię Czerwoną było kolejną formą okupacji i okresu terroru, który zmalał na sile dopiero w czasie odwilży październikowej w 1956 roku, a ostatecznie zakończył się w 1993 roku, kiedy to ostatnie jednostki Armii Radzieckiej opuściły terytorium naszego kraju.