西夏建立以前,元昊就采用联辽抗宋的策略,多次进攻宋朝边境,扩大自己的疆域和掠夺财物。由于北宋统治阶级的腐败和奉行屈辱退让的政策,更加助长了元昊不断掳掠和扩张的野心。西夏建国后的第二年元昊为了进一步提高国威,逼迫宋朝承认西夏的地位,便开始对宋朝边境大举进攻。
延州既是宋朝西北边境的军事要地,也是西夏出入的要冲。因此成为元昊对宋战争的第一个目标。
北宋宝元二年(1040年)三月,西夏景宗元昊进攻宋朝,夏军从土门(今陕西安塞西北)突入,进攻金明寨(今陕西安塞南部)。金明寨位于延州(今陕西延安)北部,周围有36寨,由都监李士彬率蕃兵扼守。元昊一面率军佯攻北宋的金明寨(今陕西安塞南部),一面送信给宋朝延州(今陕西延安)知州范雍,表示愿意与宋和谈,制造假象,以麻痹范雍。范雍却信以为真,立即上书朝廷,对延州防御也松懈了。十八日晨,士兵解甲就寝,被反叛者擒获,诸寨不攻自破。
延州(宋军在陕西前线的军事指挥中心,今陕西省延安市)知州范雍(兼任振武军节度使,陕西前线的最高统帅)急命驻扎在庆州(今甘肃庆城县)的环庆副都署刘平带兵三千,驻扎在延州西北85公里的保安军(今陕西省志丹县保安镇)的石元孙五千人及驻扎在保安军稍北的黄德和部两千人在保安汇合后北上夺回塞门寨。三支军队于正月十九日汇合,但此时元昊又南下攻破位于延州城北30公里的金明寨(今陕西安塞县沿河湾镇北),此时,延州城已失去了最后一道屏障,直接暴露在西夏大军面前,范雍遂令刘平、石元孙、黄德和部火速回援延州。元昊采用围点打援的战术,即派少量诱兵围住延州城虚张声势,而派重兵于宋援军必经之路设伏。
郭遵建议先侦后进,刘平不听,恃勇轻敌,贸然轻进。二十二日夜,当他们到了三川口(今陕西延安西北)西10里驻营时,遭到西夏军队偷袭,遇到西夏军队重重包围。刘平下令郭遵和王信带骑兵半渡而击。李元昊军手下一名军人扬言要擒拿郭遵,郭遵“期必死,独出入行间”,挥铁杵击破其脑袋,两军皆大呼。宋军与夏军苦战,西夏军队损失惨重。但是因为寡不敌众,刘平、石元孙领残兵退到西南山,立寨抵御。元昊多次写信劝降刘平,刘平宁死不屈。郭遵三出三入敌营,杀敌数百人,其坐骑中枪,马踠仆地,郭遵被杀。刘平遣子刘宜孙求援于黄德和:“当勒兵还,并力拒贼,奈何先引去!”,令其还击。黄德和却逃往甘泉(今属陕西)。
夏军在三川口全歼刘、石部之后,集兵于延州城下,准备攻城,延州危在旦夕。这时恰逢天下大雪,寒风凛冽,夏军缺少御寒衣物,遂致军纪松弛,后来由于宋将许德怀偷袭元昊得手,军队无心再战。元昊又得报宋麟州都教练使折继闵、柔远砦主张岊,代州钤辖王仲宝率兵攻入夏境,于是率军回师,延州才解围。虽然宋朝成功抵御西夏军队的入侵,但是损失太多,而且宋朝甘陕青宁边境的防御也处于被动地位。
三川口之战为西夏的生存与发展奠定了军事基础。
三川口败后,黄德和反诬刘平降敌,刘平家属被官方逮捕。金明寨有两士兵逃回说明真相,殿中侍御史文彦博在河中府置狱,派庞籍前往调查,庞籍调查后称“德和退怯当诛。刘平力战而没,宜加恤其子孙”,黄德和被判腰斩,枭首于延州城下。此时宋廷以为刘平已死,追赠朔方节度使,谥壮武,“子孙及诸弟皆优迁”。不久有党项人来报刘平“在兴州未死,生子于贼中”。宋廷不信。后来同被俘的石元孙放还返宋,确定刘平未死。刘平后来卒于兴州。