12月11日,日軍第16師團猛攻紫金山南北的中國軍隊陣地。紫金山及其以南地區,教導總隊堅決抗擊。激戰終日,日軍毫無進展,惟其右翼部隊攻佔了第2軍團防守的楊坊山、銀孔山陣地,進至堯化門附近。日“上海派遣軍”為使其第16師團進攻容易及適時切斷守軍的東退道路,又從正在鎮江等船渡江的第13師團中調山田支隊 ,從第16師團右翼加入戰鬥,向烏龍山、幕府山炮臺進攻。日軍第10軍的第114師團及第6師團主力繼續攻擊雨花臺。第88師的第二線陣地又被摧毀,守軍被迫據守核心陣地。日軍第114師團右翼部隊開始攻擊中華門,城門被炮火擊毀。少數日軍一度突入城內,但被第88師據守城垣的部隊殲滅。日軍第6師團左翼部隊之一部沿長江東岸北進,在上新河擊退憲兵教導2團的1個營,佔領了水西門外的棉花堤陣地。日軍國崎支隊在當塗北慈湖附近渡過長江,沿西岸北進,向浦口運動。佔領蕪湖的日軍第18師團因轉用於杭州方面,不再參加進攻南京的作戰。
武漢大本營對南京的戰況極為關注,每日均有詢問及指示的電報,當發現撤至南京部隊的戰鬥力及士氣已遠不如淞滬作戰,南京外圍主陣地帶僅防守兩三天即告失守,而復廓陣地立足未穩即在主要方向上又被敵突破、迫逼城垣時深感形勢嚴峻;當得知當塗附近已有日軍渡江時,更感局勢危急。為避免南京守軍被敵圍殲,蔣介石於11日中午考慮令南京守軍撤退,遂令時在江北的顧祝同以電話轉告唐生智。顧要唐當晚渡江北上,令守軍相機突圍。唐生智由於自己曾力主固守,若突然先行撤走,怕今後責任難負,因而要求必須先向守軍將領傳達清楚最高統帥的意圖後方能撤離。當晚,蔣介石致電唐生智:“如情勢不能久持時,可相機撤退,以圖整理而期反攻。 ” 唐生智於當夜與羅卓英、劉興兩副司令長官及周參謀長研究後,決定於14日夜開始撤退。遂於12日凌晨2時許召集參謀人員制訂撤退計劃及命令。
城垣戰鬥
12月12日自拂曉起,日軍即集中炮兵及航空兵火力對復廓陣地及城垣發動猛攻。城南方面,戰鬥至10時前後,雨花臺陣地被日軍攻佔。防守該地的第88師第264旅殘部因中華門城門已經堵死,無法退入城中,遂在敵火力下作橫向移動,沿護城河繞城北進,傷亡甚大。日軍佔領雨花臺後,居高臨下,加強了對中華門的火力襲擊。第88師第262旅部分官兵堅守城垣陣地,奮力阻擊;第88師師長孫元良率師直屬隊及第262旅一部兵力擅自向下關退卻,企圖渡江北撤,在挹江門內被第36師師長宋希濂勸阻,仍返回中華門作戰。城東方面,日軍第16師團仍在孝陵衛西山及紫金山一帶激戰。“上海派遣軍”因第9師團在光華門一帶遭守軍反擊後頓兵城外,毫無進展,於11日命控制於蘇州附近的機動部隊第3師團迅速前進;於12日晨令第9師團停止進攻,進行整頓,令第3師團由第9師團左翼加入戰鬥,向城垣進攻。
中午前後,在日軍猛烈炮火轟擊下,中華門及其以西城垣數處倒塌,一部日軍在炮火掩護下由缺口突入城內。第88師遂即撤走。當時中華門內大批居民為逃避炮擊和日軍,紛紛向城北部難民區逃跑,與潰退的散兵擁擠在街道上,城中秩序開始陷於混亂。
衛戍司令部為了有計劃、有組織地實施撤退,於14時指示第36師負責維持城中及下關的秩序 。但此時日軍第6師團一部已突入至中華門內,第16師團及第3師團已逼近中山門及光華門,第6師團左翼旅已逼近水西門。守軍第2軍團退至烏龍山,教導總隊退至紫金山,第74軍派人去三汊河架設浮橋,企圖渡江撤退至浦口,被第36師制止,南京守軍已開始呈動搖態勢。唐生智等決定改在當夜撤退。蔣介石雖然致電唐生智,令其在不能持久時相機撤退,但總從政治方面考慮較多,希望能多守一段時間,因而在12日又以致函形式致電唐生智、羅卓英及劉興,提出他自己的企望 。
撤離南京
12月12日17時,衛戍司令部召集師以上將領開會,佈置撤退行動。唐生智首先簡要地說明當前戰況,詢問大家是否還能繼續堅守。與會將領無一人發言。唐生智遂出示蔣介石命守軍相機撤退的電令,即由參謀長周斕分發了參謀處已油印好的撤退命令及突圍計劃 。
衛戍司令部突圍計劃的基本精神是大部由正面突圍,一部隨司令部由下關渡江。但在書面命令分發後,唐生智又下達了口頭指示,規定第87師、第88師、第74軍及教導總隊“如不能全部突圍,有輪渡時可過江,向滁州集結 ”。這就大大降低了命令的嚴肅性,也為不執行命令製造了藉口,以致計劃中規定的由正面突圍的部隊,除廣東部隊第66軍及第83軍之大部按命令實施突圍外,其餘各軍、師均未按命令執行。有口頭指示為依據的部隊,必然一起擁向敵人尚未到達的下關,以便迅速、安全地渡江北撤;許多未接到撤退命令的部隊因發現友軍撤退而撤退。雖接到命令而並不知道撤退計劃詳情的旅、團長們也都認為上級既然要軍隊撤退,在下關必然已準備好大量渡江工具,因而亦皆擁向下關。
自行決定由下關渡江的軍、師長大多未按命令規定的時間開始撤退,而是在散會後立即部署部隊撤退。有的單位在接到命令前即已撤走。如衛戍司令部第2軍團負責固守烏龍
山要塞以掩護其他部隊撤退和突圍,應最後撤退,但徐源泉於12日下午即率其第41師和第48師從周家沙和黃泥蕩碼頭乘坐其預先控制於該處的民船最早渡至江北,經安徽去江西整頓。烏龍山要塞部隊在徐源泉部撤走後,也於當晚毀炮撤去江北。有的將領只向所屬部隊打撤退電話,或回去安排一下撤退事宜就脫離部隊,先行到達下關,隨同衛戍司令部及第36師乘渡船先到江北。如第71軍軍長王敬久、該軍第87師師長沈發藻等根本未回指揮所;教導總隊隊長桂永清回到富貴山地下室指揮所後告知幕僚撤退任務,即留參謀長邱清泉處理檔案等,自己單獨先去下關;其第2旅旅長鬍啟儒得知撤退訊息較早,不等會議結束,即以奉命去下關與第36師聯絡為由,電話通知其第3團團長代行旅長職責,獨自先去下關。
由於城中各部隊多沿中山路向下關撤退,而挹江門左右兩門洞已
經堵塞,僅中間一門可以通行,各部爭先掄過,互不相讓,不少人因擠倒而被踩死。如教導總隊第1旅第2團團長謝承瑞,在光華門陣地上曾英勇地抗擊日軍多次衝擊,卻在挹江門門洞內被擁擠的人群踩死。有的將領,如第83軍第156師師長李江見城門無法擠過,就從門東側用綁腿布懸吊下城出走。
下關情況更為混亂,各部隊均已失去掌握,各自爭先搶渡。由於船少人多,有的船因超載而沉沒。大部官兵無船可乘,紛紛拆取門板等物製造木筏渡江,其中有些人因水勢洶湧、不善駕馭而喪生。
因烏龍山要塞守軍撤走,原停泊於草鞋峽、三臺洞(燕子磯南)的“文天祥”**快艇中隊也於12日夜馳去大通,12月13日拂曉,日軍山田支隊未經戰鬥即佔領了烏龍山;日海軍艦艇透過封鎖線到達下關江面,日軍第16師團一部亦乘舟艇進至八卦洲附近江面。大量正在渡江的中國軍隊官兵被日海軍及第16師團的火力和艦艇的衝撞所殺傷。憲兵副司令蕭山令即死於半渡之中。與此同時,日軍各師已分由中山門、光華門、中華門、水西門等處進入南京城內;原在鎮江的天谷支隊已渡過長江,正向揚州前進中;國崎支隊已至江浦,正向浦口前進中。已渡至江北的中國軍隊沿津浦路向徐州方向撤退。
12月14日,根據中國大本營的指示,唐生智在臨淮關宣佈南京衛戍司令長官部撤銷,撤至江北的衛戍軍部隊改隸第三戰區。南京保衛戰基本結束。
從12月12日下午開始,南京衛戍軍各部隊撤退及突圍的情況大致如下(南京大屠殺60年祭專輯給出的國軍突圍撤退的數字是32144人):
衛戍司令長官唐生智、副司令長官羅卓英、劉興及長官部官兵,12日晚從下關煤炭港乘預備的小火輪渡江至浦口,得到日軍已至江浦附近、正向浦口包圍的情報,遂徒步向揚州顧祝同第三戰區司令長官部靠攏;13日7時到達揚州時,顧祝同及第三戰區司令長官部已移駐臨淮關,臨行時留下6輛卡車。唐生智等主要官員及衛隊乘汽車至滁州轉火車,於當晚到達臨淮關。
在司令部渡江後,第78軍、第36師亦於煤炭港分批乘船渡江,至烏衣集結,爾後乘車去蚌埠,又轉信陽去江西萍鄉整頓。在葉肇及鄧龍光兩軍長參加會議後,第66軍及第83軍(均為廣東部隊)共同研究決定:不遵守唐生智令第83軍掩護其他部隊突圍後再於次日晨6時突圍的命令,兩軍由葉肇統一指揮,按計劃由正面突圍,向指定地點轉進 ,當即下令各師“按160、159、156、154師之順序,由太平門突圍,經湯山、句容向安徽寧國集中 ”。12日20時前後,除156師因未接到命令外,其他3個師先後透過太平門。途經岔路口、仙鶴門、東流等地時,均遭日軍阻擊,第159師代師長羅策群率隊衝擊時陣亡。拂曉前到達湯山附近時,又遭日軍第16師團主力的猛烈攻擊。部隊逐漸失去掌握,各自為戰,數百人或數十人一隊,分頭向指定地點轉進。葉肇、鄧龍光與各自的部隊失散,均換著便衣突過日軍包圍圈。20日前後,各師大部分別到達南陵、歙縣。第66軍參謀處處長郭永鑣在九華山一帶收容失散的官兵約1300餘人,臨時編為3個營。1938年1月上旬,他們到達寧國附近歸隊。未接到命令的第156師師長李江率隊與教導總隊等一同撤至下關,部分官兵渡過長江,輾轉歸隊。
南京衛戍軍的其他各部均於12日下午和夜間擁至下關。第74軍組織較好,又掌握有一艘小火輪,約有5000人渡過江北。其餘部隊僅有一部得以渡江,大多留在江南,遭日軍殺害。