北宋寶元三年初,西夏派來使者,向宋朝求和。鄜延路的最高軍政長官范雍十分高興,接著厚葬了那些戰死的党項士兵。然後就有大批西夏人過境投降,希望能夠定居於鄜延路軍事第一重地金明寨。金明寨的守將李士彬也是党項人,但父子皆爲宋軍,忠誠可靠。金明寨有守軍10萬,號稱「鐵壁」,李士彬更是被稱爲「鐵壁相公」。

北宋寶元三年初,西夏派來使者,向宋朝求和。鄜延路的最高軍政長官範雍十分高興,接著厚葬了那些戰死的党項士兵。然後就有大批西夏人過境投降,希望能夠定居於鄜延路軍事第一重地金明寨。金明寨的守將李士彬也是党項人,但父子皆為宋軍,忠誠可靠。金明寨有守軍10萬,號稱“鐵壁”,李士彬更是被稱為“鐵壁相公”。轉眼新年到,李士彬照例巡軍,看起來一切正常平安無事。然而警報在第二天凌晨響起,他憑直覺騎馬迎戰,卻發現那是一匹劣馬,而不是自己騎慣的良駒,一代名將就這樣成了俘虜。直到被俘,他才發現自己的對手原來就是當年那個搖尾乞降的李元昊。在被捉前,他讓自己的心腹部下帶著自己的妻子母親逃往延州,同時向範雍報告軍情,金明寨失守。他的妻子和母親奇蹟般地在混亂中逃出,來到延州。範雍一聽到這樣的消息,驚慌失措。他的城中只有區區幾百人,只能命傳令兵到處搬救兵。傳令兵奇蹟般地跑到了邊境線,找到了在土門一帶錯過李元昊的劉平、石元孫,讓他們馳援延州。寒冬臘月天,劉平軍和石元孫的保安軍行軍數日,肯定疲憊至極,兼他們的兵馬僅僅一萬有餘,憑區區一萬餘疲弱之軍,可能解延州之困嗎?且傳令兵在戰役正在進行的間隙,通行無阻地傳令過來,難道不應該有陷阱的嫌疑嗎?然而軍令難違,一定要趕赴延州,殺滅李元昊。終於,越過幾乎空無一人的金明寨,留下步兵,帥騎兵一路奔馳來到了三川口外圍,延州城在望。此刻人困馬乏,又風雪來襲,只好在三川口以西10裡處下營休息。此時,劉平又接急報,要他快馬加鞭火速入城,並且為了防止党項人趁機渾水摸魚,要他的部隊化整為零,小隊進入。劉平放進去50個小隊後就發現其中有詐。於是只好穩住騎兵,在營地裡休息,等待步兵的到來。可是天亮後步兵竟然杳無音信,只好後撤20裡,才遇到了晝夜趕路的步兵。兵力猛增了2000人,這是鄜延路黃德和與万俟政、延州西路的郭遵。宋軍結陣東行,來到了三川口的五龍川。他們碰到了西夏軍隊,其數量令人瞠目結舌,至少有15萬人,其中包括7萬騎兵。他們與宋軍中間隔著五龍川遙遙相對。西夏的軍隊開始渡河,此時擊之中流是宋軍唯一的選擇了,於是郭遵身先士卒,殺向敵陣。然而敵軍人馬實在太多,根本難以擊潰,最終党項人還是整合好了自己的人馬,列陣岸前。李元昊不存什麼幻想,直接以數量取勝。豎起盾牌,緩慢逼近。然而宋軍搶先進攻,竟然將西夏軍隊逼退河中,可是代價巨大,主將劉平脖子耳朵皆被射傷。傍晚來臨,李元昊再次派出騎兵,突擊渡河,宋軍難以招架,後退二十步,一切就此改變。黃德和率先逃跑了,党項乘機掩殺。勇將郭遵孤身逆流衝入敵陣,奮力向前,給劉平留下機會和時間。自己卻不幸死於亂箭之中。劉平截流了一千人,重新列陣,跟西夏軍整整纏鬥了三天。三天之後,西夏軍離開三川口,前去攻打延州。劉平率軍後撤至西南方一個小山頭,立下7座營寨以求自保。又到夜晚,西夏再次派人冒充範雍使者,被識破之後索性勸降,自然也沒能成功。天亮之後,李元昊帶來人馬,四面圍山。宋軍堅守,全軍覆沒,無一生還。