979年,越南丁朝宫廷发生内讧,原太子、南越王丁琏杀死太子丁项郎。
不久宦官杜释发动宫廷政变,杀死了丁部领和丁琏。阮匐、黎桓等人又杀死杜释,扶立丁璇即位。
随后黎桓执掌政权,镇压阮匐等反对势力。占城乘机进攻丁朝首都华闾。
980年,宋朝知邕州太常博士侯仁宝上奏宋太宗,请求趁丁朝内乱之机南下讨伐。
宋太宗任命侯仁宝为交州陆路水路转运使;任命兰陵团练使孙全兴、漆作使郝守俊、鞍辔库使陈钦祚、左监门将军崔亮为兵马都部署;宁州刺史刘澄、军器库副使贾湜、供奉官阁门祗候王僎为兵马都部署,伺机进攻丁朝。
丁朝太后杨云娥得知宋朝调兵遣将将要南下,令黎桓整备兵马。黎桓为心腹部将范巨备所拥戴,在军中自称皇帝,建立前黎朝;废丁璇为卫王。
宋太宗得知黎桓篡位,以扶立丁璇复位为名义,下令侯仁宝率陆军出邕州,刘澄率水军出广州,立即发兵讨伐黎桓,试图水陆夹击。
宋太宗同时还向黎桓发出国书,斥责其篡夺丁朝皇位之事。黎桓派牙将江巨望假冒丁璇的使者出使宋朝,要求加封节度行军司马。
宋太宗察觉到这是黎桓的缓兵之计,一面令宋军继续进兵;一面遣使赴黎桓处,要求黎桓或是交出丁璇母子,或是入朝受封。但黎桓不予理会。
980年,宋朝陆军侯仁宝、孙全兴部到达谅山,陈钦祚部到达西结,打败数万黎军,杀死二千余人。水军则由刘澄率领,到达白藤江。黎桓命令在白藤江里打下许多木桩,阻拦宋军的战船。
次年春,宋军在白藤江打败黎军,斩首千余人,俘虏战船二百余艘。侯仁宝率军先行,孙全兴部停留在花步地区七十天等候刘澄的水军。
侯仁宝多次派人催促,但依旧滞留不前。刘澄军到来后,两军方才合兵前进,由水路至多罗村。
黎桓引兵退至支棱江,遣使向侯仁宝献诈降书。侯仁宝中计,不以为备。于是黎桓夜袭宋军军营,击溃宋军,侯仁宝战死。
陈钦祚得知侯仁宝已战败身亡,率军撤退,遭黎桓追击,大败。
转运使许仲宣向宋太宗上奏此事,宋太宗下令撤军回国。不久,宋太宗下诏惩治相关将领。
刘澄忧惊病死,贾湜、王僎二人在邕州被处死。孙全兴被押赴汴京斩首,其他将领都遭惩处。阵亡的侯仁宝则被追赠工部侍郎的官爵。
黎桓在宋军退兵之后,试图与宋朝重新修好外交关系。
983年,黎桓遣使向宋朝朝贡,遣还俘虏,上表谢罪。
986年,又遣牙校张绍冯、阮伯簪等朝贡,并要求宋朝承认其在越南的统治地位。
宋朝最终于987年承认黎桓的统治地位。