1945年8月9日,蘇聯對日宣戰,日本將面臨美蘇兩大軍事強國的兩面夾擊,毀滅就在眼前。對蘇聯來說,對日作戰的一大意義就是洗刷日俄戰爭戰敗之恥,在日俄戰爭結束後的《朴茨茅斯條約》中,俄國被迫讓出了在遠東的一系列權益,其中就包括把北緯50度以南的庫頁島南部(即南庫頁島)割讓給了日本。
因此對蘇聯來說,奪回南庫頁島就成了雪恥的關鍵一步,為了名正言順地拿下南庫頁島,早在雅爾塔會議時斯大林就把割佔日本控制下的南庫頁島作為蘇聯出兵的必要條件,急於儘早結束戰爭以及減少自家官兵傷亡的羅斯福答應了他的條件。
在當時的庫頁島北部,蘇軍部署了遠東第2方面軍第16集團軍第56步兵軍,由北太平洋區艦隊(擁有護衛艦1艘、潛艇9艘、掃雷艦5艘、魚雷快艇24艘以及幾個中隊的護衛艇和掃雷艇,艦隊航空兵有飛機80架——戰鬥機44架、轟炸機15架、強擊機12架和偵察機9架)和第255混成航空師(106架飛機)配合,第56步兵軍擁有1個步兵師、3個步兵旅、1個坦克旅、3個炮兵團、1個機槍團、2個獨立坦克營,由於該地區遠離蘇德戰場,因此部隊的裝備不算好,比如第214坦克旅裝備的還是老式的T-26坦克。
南庫頁島的日本守軍為隸屬於第5方面軍的第88師團(師團長峰木十一郎中將),下轄第25、125、306步兵聯隊,第88山炮聯隊(下轄一個迫擊炮大隊和一個山炮大隊),還有少量海軍人員、國境警察隊、特設警備隊等。以上人員總計約2萬多人,8月13日又召集了數千名當地的日本平民組成了“國民義勇隊”,除了地面部隊外,日軍在大泊、真崗和惠須取部署了一些艦艇,日軍在南庫頁島擁有13個機場,不過在8月以前,航空兵已經全部調去守衛本土了。
在國境線附近設防的是第125步兵聯隊(由一個山炮中隊配合),其主力集中在古屯以北的要塞區,要塞區正面寬12公里,縱深30公里,擁有17個永久火力點、31個火炮臨時火力點和108個機槍臨時火力點、28個火炮陣地、18個迫擊炮陣地,戰區內森林密佈,要塞西側是群山,東側則是難以透過的沼澤谷地。除了邊境之外,真崗港部署有第25步兵聯隊的2個大隊,港口西南部署有另外一個大隊,名寄、榮浜、大泊分別部署有第306步兵聯隊的一個大隊。
8月10日,第56步兵軍接到命令,要求該軍在第二天跨過邊境,在8月25日之前佔領南庫頁島。第56軍以第79步兵師和第214坦克旅為第一梯隊,第2獨立步兵旅為第二梯隊,第178、678獨立坦克營為預備隊,蘇軍的意圖是以主力從正面直撲半田—小頓公路(國境線附近唯一一條南北走向的公路),同時讓第79步兵師第179團從東側迂迴進攻。
8月11日7時45分,第79師第165團第2營首先越過邊境,2個小時後抵達半田,這裡的守軍是兩個小隊和28名國境警察,總計100餘人,第165團立刻以全團兵力強攻半田,可是所有道路都被火力封鎖,俄國人的正面攻勢受挫。被迫採用迂迴戰術,8月12日,蘇聯人才突破日軍在半田的陣地。
經過數日激戰,蘇軍在坦克支援下,逐漸穿越東部的凍土地帶,逼近古屯要塞區,蘇軍步兵在坦克前面排成散兵線,一面前進,一面鋪路,遇到日軍工事坦克就從後面開火壓制,日軍在主要防禦地帶前部署有大量前哨小分隊,他們邊打邊撤,以樹林為掩護進行射擊,併到處埋設地雷,遲滯蘇軍的前進,受到這些小分隊的牽制,直到8月15日結束,俄國人也沒在正面取得太大成果,只是在八方山(國境線以南10公里)與日軍糾纏,此外,蘇軍還在8月12日、13日分別在安別登、惠須取登陸,但均被擊退。
從東面迂迴的第179團相對順利,為了達到出其不意的效果,該團指揮官決定從最難走的沼澤地突入日軍後方,蘇聯人在齊腰深的沼澤裡走了整整一晚,於拂曉一舉突入小頓車站,日軍沒料到蘇聯人會從沼澤深水裡進攻,慌忙組織多次反撲,雖經激烈血戰,也無法將這股蘇軍趕走,很快,5個步兵營、1個坦克營、1個炮兵團都被送到了日軍側後方,第125聯隊腹背受敵,聯隊長下令燒燬軍旗,決定與蘇軍決一死戰。
蘇軍開始進攻後,第5方面軍司令樋口季一郎中將決定從北海道的第7師團中抽調3個步兵大隊和 1個炮兵大隊支援第88師團,而且還制定了一個在蘇聯控制的北庫頁島以一個聯隊進行反登陸的大膽計劃,然而,這些舉措還未實施,日本天皇就宣佈投降,不過由於沒有接到上級的明確命令,南庫頁島的日軍還在繼續抵抗,戰鬥還在繼續。
8月16日,在長達一個多小時的炮擊和空中轟炸後,第79步兵師對第125步兵聯隊發起猛攻,日軍躲在地下工事內頑抗,蘇軍進展緩慢,而在側後方,第125步兵聯隊第1大隊和加強後的第179團進行激戰,結果遭到重創,大隊長以下很多人戰死。8月17日,日軍大本營向第 5方面軍下達“停止一切戰鬥行動”的命令,並要求迅速傳達給第88師團,第88師團接到停戰令後讓第125步兵聯隊與蘇軍進行談判,到18日早晨日軍開始放下武器,到18日日終,古屯的3300名日軍被解除了武裝,第125步兵聯隊共有568人戰死。
8月16日5時,蘇軍按照原計劃派出海軍陸戰隊第265營和第113步兵旅第2營在30艘艦艇(護衛艦1艘、掃雷艦4艘、護衛艇6艘、魚雷快艇19艘、運輸船2艘)的警戒和輸送下在南庫頁島西岸的塔路港登陸,當地只有日軍一個特設警備小隊和40名“國民義勇隊”,蘇軍沒費什麼力氣就佔領這裡,然後南下奪取惠須取,蘇軍原以為不會遇到什麼抵抗,結果日軍第301特設警備中隊、1個新兵中隊、連同“國民義勇隊”和警察在通往惠須取的山路設防,擋住了蘇軍先頭的2個海軍陸戰隊連,日軍又派出3個步兵中隊增援惠須取。
8月17日,蘇軍在聚攏全部上陸兵力和裝備後,炮擊1個小時後展開強攻,經 2小時激戰佔領了惠須取,當地日軍不願交出武器投降,退向內陸,8月19日,第88師團與蘇軍的談判最終破滅,這意味著戰鬥還會繼續下去。由於地面推進緩慢,蘇軍又派出第113步兵旅和一個海軍陸戰隊混成營共3500人,由5艘運輸船輸送,在1艘護衛艦、1艘佈雷艦、5艘獵潛艇、2艘護衛艇、4艘掃雷艦、4艘魚雷艇的護送和支援下,在8月20日7時30分在濃霧的掩護下在真崗成功登陸。
在一切混亂中,大量日本平民被打死或自殺,蘇軍官兵還抓了幾百名平民作為俘虜以邀功,日軍本打算和蘇軍進行談判,但蘇軍此時沒心思和他們談判,他們只對日軍是否投降有興趣,結果可想而知,日軍派出的軍使直接被打死,平民也遭到機槍掃射,日軍一怒之下重新開火,蘇軍前進再次受阻,8月22—26日,蘇軍第87步兵軍的3個師也在真崗登陸。但日軍很多部隊仍不肯放下武器,由退伍軍人和中學生組成的特設警備隊也與蘇軍展開戰鬥。
8月21日,第5方面軍授權第88師團可以無條件投降,次日晚,第88師團向各部隊下達無條件投降令,日軍的抵抗至此基本結束,8月22日,蘇軍空降兵佔領小能登呂機場,晚上第113旅攻佔二股,隨後向大泊發展。但蘇軍還是嫌太慢,8月23日,1艘佈雷艦、8艘掃雷艦、4艘護衛艇、6艘魚雷快艇滿載著3個海軍陸戰隊營共1600人從真崗出發,目標大泊,由於當晚颳起大風,船隊只能開進本鬥港避風,因此耽誤了一天。
8月25日6時,部隊開始登陸,在第113旅的配合下於10時佔領大泊,3400名守軍投降,與此同時,蘇軍第56步兵軍也開進了豐原,到8月26日,南庫頁島的日軍基本都被解除武裝,蘇軍俘虜日軍18320人,南庫頁島戰役至此結束,蘇軍達到了戰前的目標。戰鬥中,日本除傷亡了數千名武裝人員外,還有數千名平民死亡,但也有一些軍人和數萬平民乘船逃往北海道,然而成功逃回北海道也不是一件容易事,8月22日,3艘日本難民運輸船在北海道海域被蘇軍的兩艘潛艇擊沉,造成1708人死亡。
從戰役的規模和戰役結束的時間來看,南庫頁島戰役是二戰中最後一場大戰,其規模甚至超過了著名的硫磺島戰役,島上的2萬多名日軍除少部分逃跑外其餘全部被殲,蘇軍佔領南庫頁島後本想乘勢攻入北海道,但最終在美國的反對下,蘇聯最終還是止步為南庫頁島。