漢三年(公元前204年),韓信提出他的作戰方略:“北舉燕、趙,東擊齊,南絕楚糧道,西與大王會於滎陽。”劉邦給了他三萬人,使與張耳率兵越過太行山,攻擊趙國。趙以二十萬大軍,扼守井陘口,準備與韓信決戰。趙謀士李左車認為,韓信涉西河,虜魏豹,擒夏說,乘勝遠鬥,鋒銳不可當。他想利用井陘的有利地形,製伏韓信。他獻策說:“今井陘之道,車不能方軌,騎不能成列,行數百裏,看形勢糧食必在其後。願大王借臣奇兵三萬人,從中間之道絕了韓信的輜重,大王隻要深溝高壘,堅守軍營不要與其發生戰爭。他前不能鬥,退又退不得,我用奇兵絕了他的後路,使他在野外找不到糧食吃,不出十日,韓信、張耳必敗無疑。”成安君陳餘則認為,韓信以少數兵力遠征,士卒疲憊,不堪一擊。他傲氣十足,以一時之勇不用詐謀奇計,輕易地拒絕了李左車的建議。
韓信遣人探知趙不用李左車之謀,即刻進兵,至井陘口三十裏,停止前進。選輕騎二千人,各持一赤旗,埋伏在趙營側後。任務是待趙兵傾巢而出,進擊漢軍時,闖入趙營,拔掉趙旗,插上漢的赤旗。為了誘使趙軍出營決戰,韓信故意背水列陣,把將卒布置在綿蔓水東岸的微水村,擺出易受攻擊的陣形。然後,他親自率軍出井陘口。趙軍見韓信軍至,出營狙擊。經過一陣激戰,韓信佯敗,丟旗棄鼓,向綿蔓水後退。背水列陣,向來為兵家之大忌。所以,趙王歇、成安君陳餘誤認為韓信不懂軍法,見他後退,便下令追擊。趙軍傾巢出動,爭搶旗鼓,一味前進。韓信埋伏的二千人,乘機占領趙營,拔掉趙旗,插上漢的赤旗。韓信與綿蔓水的將卒會合後,被置於死地的漢軍,拚死戰鬥,勇猛異常。趙軍見取勝無望,準備退回,但見營寨一片赤旗,頓時倉皇潰逃。韓信軍前後夾擊,追至泜水,全殲趙軍,俘趙王歇,斬成安君陳餘。
敗趙後,韓信立即下令:不準殺害李左車,並且高價懸賞,生得李左車者予千金。後李左車被捆來時,韓信親自為其鬆綁,東向坐,西向對,向他請教攻燕伐齊的策略。李左車分析了韓信軍的長處與短處後,提出了和平取燕的良策。後韓信用李左車之計策,未發一兵一卒,燕國便歸降了。
在韓信節節勝利之時,劉邦卻被項羽困在成皋。他和滕公從北門逃出,渡黃河,到脩武。韓信再次把精兵交給他。劉邦得到韓信的軍隊,才又重新振作起來。
韓信收“趙兵未發者”及劉邦挑選剩下的士卒,東進擊齊。乘齊守備懈怠,韓信一舉破齊曆下軍,奪取齊都臨菑。齊王田廣逃到高密,求楚救援。項羽遣龍且率軍救齊。人們勸龍且堅壁清野,令齊王發使招所亡城郭,逼使漢軍不戰而降。龍且自恃有大兵二十萬,齊將田間也將二十萬,所以就傲慢起來,遂與韓信夾濰水對陣。韓信軍居水西,龍且軍居水東。韓信夜遣人以沙袋萬餘截斷水流。然後,引軍渡河,剛過一半,佯敗而還。龍且高興地說:“我就知道韓信已經膽怯了。”遂追而渡水。龍且軍剛渡近半,韓信使人撤去沙袋,大水驟至,把龍且軍分成兩半。渡過河的龍且軍,人數並不比韓信軍隊少,但是由於被分割,將士恐慌,韓信輕易地擊敗了渡河的楚軍,殺了龍且,未渡河的楚軍驚慌逃散。韓信乘勝追擊,至城陽,全殲楚軍,虜齊王田廣和守將田光。又敗齊相田橫於嬴下,殺齊將田既於膠東,遂定齊地。但是,齊田氏仍在抵抗。
漢四年(公元前203年),韓信以“齊偽詐多變,反覆之國,南邊楚,若不用王以鎮之,其勢不定”為由,遣人申請作假齊王。劉邦拆書,大怒,罵道:“我困在這裏,而你還要在那裏稱王!”張良、陳平急踢他的腳,並咬耳說:“現在能阻止韓信為王嗎?不如善待之,使其守齊。不然,生變,後果不堪設想。”劉邦醒悟,改口說:“大丈夫定諸侯,即為真王耳,何以假為?”就這樣,劉邦違心地遣張良拜韓信為真齊王。
漢五年(公元前202年),韓信率兵赴垓下,參加楚漢最後的決戰。當時,項羽所剩兵力約十萬人。由於“楚戰士無不一以當十”,戰鬥力仍然很強。漢軍的陣勢排列是:韓信將三十萬自當之,孔將軍居左,費將軍居右,是第一線。劉邦在後,是第二線。周勃、柴將軍在劉邦後,是第三線。戰鬥開始,韓信佯敗。項羽追擊,孔、費二將從兩側出擊,楚不利。韓信殺回馬槍,大敗楚軍。第二、第三線未動,楚軍便被打垮。項羽喪失了再戰的信心,被迫突圍,至烏江自刎,楚漢戰爭結束。