1948年4月27日夜,獨二旅進入隱蔽圈,靜待敵人到來。獨二旅旅長給許光達傳來消息:敵軍1個工兵營在洛河渡口架浮橋,準備過河!擔任架橋任務的敵工兵營,好長時間也架不起橋,營長見難及時完成任務,幹脆跑了。工兵營失去指揮,一時大亂。何文鼎隻好派第十二旅趕到河邊,準備涉水渡河。敵軍第十二旅的2個團涉過河,占領了渡口的製高點,準備掩護主力過河。何文鼎見一切順利,便指揮部隊過河。突然,渡口的西北方向響起了槍聲,是獨二旅接到許光達的命令,封鎖渡口,不準後麵的敵人過河。正在渡河的敵人,聽見槍響,慌作一團,互相擁擠,許多人被水淹死。這一仗共殲敵3000多人,解救出被敵人裹脅的2000多老百姓。
隨後,許光達又率三縱隊參加了合陽戰役、荔北戰役。11月,他率三縱參加冬季戰役,與二縱、六縱組成左翼兵團,東渡洛河,28日會同二縱攻克永豐鎮,全殲敵七十六軍。
1949年2月1日,根據全國統一編製,西北野戰軍整編為中國人民解放軍第一野戰軍,第三縱隊整編為第三軍,下轄步兵第七師、第九師,許光達任第三軍軍長。7月,南北戰場展開全麵進攻,軍委決定組成大兵團作戰,以第三、四、六軍組成第一野戰軍第二兵團,許光達任兵團司令員,王世泰任政委。7月上旬,第一野戰軍司令員彭德懷部署“先鉗馬打胡,後鉗胡打馬”的方針,以1個兵團牽製“二馬”集團主力,另以3個兵團殲滅位於扶風的胡宗南主力,許光達在圍殲國軍胡宗南部主力的扶眉戰役中,率部迂回敵後,斷敵退路,胡宗南所部第三十六軍、第三十九軍退至秦嶺及其以南地區。隨後,解放軍攻占蔡家坡、岐山、鳳翔、寶雞和益門等城鎮。
1949年的8月,許光達與第一兵團、六十三軍組成左翼,配合第十九兵團追殲向隴東逃跑的馬鴻逵、馬步芳部。8月20日,許光達率領部隊兵臨蘭州城下。馬步芳憑借蘭州地形與工事,將我軍吸引到蘭州周圍,然後讓靖遠的馬鴻逵第八十一軍斷我軍補給線,讓駐守黃河北岸的第九十一軍、第一二○軍從左右兩翼包抄,企圖內外夾攻擊敗我軍。
麵對敵軍的部署,彭德懷決定以許光達的第二兵團3個軍和第十九兵團的2個軍分兩路包圍蘭州。許光達為了打贏這次戰役,親自帶領師以上幹部偵察蘭州地形。許光達研究了地形並聽取了指戰員的看法之後,向各軍分派了任務:第二兵團的第三、四、六軍共3個軍分別向馬家山、營盤嶺、沈家嶺發起進攻。三個軍激戰了一天,沒有奪下一塊陣地,傷亡卻很大。許光達得知情況後,對警衛員說:“通知下去,晚上召開黨委會!”在黨委會上,許光達聽了大家的彙報,總結出這次進攻失敗的原因是:幹部、戰士有輕敵的思想。他對政委王世泰說:“輕敵驕傲還能不打敗仗?”王世泰說:“驕兵必敗。我們要從上到下,在思想上要整頓,克服這種輕敵驕傲情緒。”許光達說:“下麵輕敵,責任在我們,我們應該向野司作檢討。”王世泰同意了許光達的意見,兩人向野司作了檢討。8月25日,蘭州戰役的總攻打響。解放軍六十三軍先後以3個團攻竇家山,曆經6個多小時攻克。第六軍以5個團攻營盤嶺,自淩晨6點半至下午四點半攻克並打退敵人反撲共10個小時。第四軍以4個團攻擊沈家嶺,十一師三十一團正麵主攻,三十二團從左翼助攻,三十三團從右翼助攻。沈家嶺西側為陡峭的岩石地貌,三十二團運動了一夜從沈家嶺西側後艱難攀上,卻很早就讓敵軍發覺了。這個時候,敵軍的增援部隊到達沈家嶺,三十二團受到不同方向的重兵夾擊,傷亡重大。三十一團在正麵發起了攻擊,吸引了敵軍部分主力,三十二團才在沈家嶺西側邊緣占據了個支撐點。經過一天的激烈戰鬥,到下午5點鍾後,敵軍再也沒派來支援部隊,軍心開始動搖。我軍抓住機會,步步進逼,打到了沈家嶺北部最後一道防線,隨後我軍發起全線衝鋒,敵軍三五七師師長楊修戎和一九○師參謀長李少白等人全部潰敗下去,至此我第四軍占領沈家嶺。許光達得知這個消息後,命令第三軍發起猛攻。第三軍第七師攻下七裏河後,沿黃河南岸東進準備奪取黃河鐵橋,從26日淩晨開始,經過數個小時的激戰,消滅了守橋敵人,阻止了城中潰撤逃跑的殘軍。同日24時,彭德懷在向毛澤東發電報:本月25日惡戰一天,四、六兩軍奪敵兩個陣地,俘敵百餘,斃傷敵近3000人;六十五軍、六十三軍,奪敵一個陣地,俘敵1000人,斃傷敵約6000人,我傷亡相等,敵人很頑強。毛澤東電複彭德懷:六十二軍暫留臨夏,必要時亦宜令其移蘭州參戰。務請注意籌足至少一個月的糧食、彈藥。毛澤東還提醒彭德懷做持久作戰的準備。
毛澤東的電報發出時,蘭州戰役已經基本結束。蘭州戰役共殲馬步芳精銳的八十二軍3個師大部和一二九軍2個師各一部以及3個保安團共計2.7萬餘人,其中斃傷1.27萬人,俘虜1.44萬人。8月30日,解放軍隆重舉行部隊入城儀式。這天,十多萬市民擁上街頭,載歌載舞歡迎自己的隊伍。彭德懷、許光達等軍隊領導以及邀請來的各界代表、各民眾團體代表檢閱了遊行隊伍。