宋军12月21日抵富良江(今红河),两军决战。李军战船四百余艘在江南阻住水路,宋军不能渡河,郭逵和赵卨便分遣兵将伐木制造发石机攻打。又依燕达建议,暗自遣军设伏山间,逐步减兵,示弱诱敌。李常杰中计,倾数万众渡江出击,宋军伏兵尽发,步骑合击,趁其帆折樯摧之际,选精兵乘大筏猛攻,大败交趾军,李朝洪真太子和昭文王子战死,左郎将阮根被俘。中国史籍和《钦定越史通鉴纲目》都赞成此说。但如《越史略》等越南史书则记载“常杰知宋军力困,夜渡江袭击,大破之。宋兵死者十五六。遂退取广源州。”认为是李朝最后取得了胜利。
富良江之战后不久李仁宗便奉表求和。此时宋军多为北方禁军,水土不服,疫病流行,死者大半。郭逵表示“愿以一身活十余万人命”,同意撤兵。宋李两朝讲和。
此役后两国边境近200年未再起大的争端,边境无事,两国间文化交流日益频繁。此外1081年宋朝放弃了所占的广源州等地区,将其还予李朝。
熙宁战争以前宋朝积极优待占城,以占城牵制李朝,努力抑制李朝对占城的侵扰。战后占城与李朝的关系发生了很大的变化。李朝进一步加强对占城的控制。与此相应占城对宋朝的态度也逐步变化。不仅朝贡日益减少,而且于淳熙二年(1171年)因宋朝拒绝占城在海南买马,双方发生了宋初以来的第一次冲突,淳熙三年宋朝又拒绝占城到海南通商。