後來,日軍指揮官下達“踏屍猛進”的命令,攻入炮壘前沿300米處,其先頭敢死隊踏響清軍地雷,死傷多人。
日軍“喋血越屍”苦戰肉搏,清守軍用速射炮迎擊。兩軍激烈交火,山搖地動。
雙方搏鬥4個多小時,攻方不斷增兵,守軍孤立無援,中午11時30分,清軍撤離炮兵陣地。
日軍左翼縱隊在步兵第十四聯隊長益滿邦介率領下,於17日經辛寨子、岔溝沿崎嶇山路向旅順東北進擊。
20日晚,前哨進至龍頭,大隊在鶯歌石宿營。
21日上午占領雞冠山東北的團山子,9時50分開始向雞冠山炮台發起進攻。
守雞冠山炮台的拱衛軍,在徐邦道指揮下頑強抵抗。南麵的黃金山海岸炮台也用24厘米的遠距離重炮進行支援,向日軍側翼進行猛烈的炮擊,雙方展開激烈的戰鬥。
10時50分,擊斃日軍步兵第十四聯隊第一大隊長花岡正貞少佐。但不久,日軍攻占了二龍山炮台後,派一個步兵大隊前來支援。
11時45分,日軍首先攻占了東雞冠山炮台。接著,大坡山、小坡山炮台及蟠桃山臨時炮台也相繼被攻陷。徐邦道率軍退入市區。
當天上午,駐守白玉山的衛汝成預備隊,由於主將衛汝成臨陣先逃,部隊無人指揮,士兵放棄陣地,紛紛向海岸炮台逃跑,致使白玉山炮台失陷。到11時50分,旅順口後路所有炮台、堡壘全為日軍所占。
12時20分,大山岩司令在軍部發布命令:除少數部隊守衛台壘外,全力向海岸及市區進攻:第1師團攻擊市區;混成旅團(第12旅團)占據市區東北部,防止清軍從東路逃走,同時策應主力部隊攻擊市區;搜索騎兵監視旅順口西麵,並警戒日軍右翼。
攻城戰開始之初,日軍遭到黃金山守軍的猛烈炮擊。
黃金山居高臨下,炮台內有各種炮20餘門,其中有24厘米遠射程克虜伯重炮3門,這種重炮可做360度射擊,機動性大、火力猛烈,對進犯日軍威脅很大。
日軍為擺脫被動,轉派2個聯隊猛攻黃金山。
清軍將士同仇敵愾,奮勇反擊日軍,但主將黃仁林見後路失陷,敵軍攻勢又猛,異常恐慌,撇下士兵,自己先走。
守壘軍士堅持到下午5時,因指揮無主,被迫放棄炮台,沿旅順口東路向北撤退。於是,日軍連續占領黃金山、東人字牆和模珠礁等陣地。
在旅順口海防西線,饅頭山、城頭山守軍和從後路撤下的清軍,仍固守陣地與敵抗爭,直到日落天黑。日軍不明虛實,暫停攻勢,打算天明後再戰。
這天夜裏,陰雲密布、風雪大作。西路清軍在徐邦道、張光前、薑桂題、程允和率領下在茫茫漆黑的深夜由西部海岸向北,取道南關嶺退往複州。
次日淩晨,日軍進攻中發現炮台無人,上午10時30分,進入西路炮台。
至此,清軍海陸炮台20餘座全部失陷,李鴻章經營14年之久,耗資白銀1億兩,船塢、炮台、軍儲東亞一流的旅順口,竟於一日之間完全淪入日軍之手。
旅順口海陸炮台20餘座所配備的新式克虜伯重炮和各種大小炮火140餘門,以及水雷營、魚雷營、船塢等各種軍事設施,彈藥、糧餉等各處物資,全歸日軍所有。
旅順攻防戰中雙方傷亡人數,據日方記載:日軍死亡將卒40人、傷241人、失蹤7人。死傷合計288人。
清軍傷亡約2500人。許多清軍戰敗後來不及退走,放下武器,藏匿在市區居民家,被日軍逐戶搜出後加以殺戮。