宋朝一面调发北方禁军,一面就地招募。调动秦晋精锐力量十万人,调用广西、荆湖、广东、河北等路兵员和物资。广西招募壮丁两三千人守卫邕、宾等州城,又从诸州军队中选配年轻不怕死的勇士赶赴桂州。到熙宁九年(1076),从全国征集而来的宋朝首批援军进入广西。交趾破邕州后正打算继续攻取桂州,见到浩浩荡荡的宋朝大军过来了,只好撤退。
接下来就是宋朝的反击了。赵卨和李宪还未到广西上任,宋军就换了主帅,由郭逵出任正使,赵为副。宋朝确定的作战计划是海陆并进,与占城(位于中南半岛东南部,北起今越南河静省的横山关,南至平顺省潘郎、潘里地区。中国古籍称其为象林邑,简称林邑)和真腊(又名占腊,为中南半岛古国,其境在今柬埔寨境内)三路合击。走海路的目的是配合策应陆路主力。
同时,宋朝意识到单独作战是艰难的。宋朝官员张方平猜测,“能害交趾者惟林邑”,于是建议招募具备外交能力的人才,在国际上寻求支持,共同讨伐交趾。熙宁九年,宋朝派李教和罗昌皓出使占城和真腊,说服他们共同出兵交趾。占城表示愿意,于是宋朝进攻交趾时占城曾派遣蕃兵七千扼制住交趾要路。但占城和真腊的牵制并未对战局产生明显影响。
郭逵二月任命、三月到广西,至十月宋军才大规模进攻交趾境内。熙宁九年十月燕达攻取广源州,十二月到达富良江,两军决战。

越南方面制定的抗宋战争图
法国人乔治·马司培罗(Georges Maspero)曾称,这场战争究竟是谁赢了到现在还很难说。中国史书和《钦定越史通鉴纲目》的描述是:两军在富良江(今红河)决战。李军战船四百余艘在江南阻住水路,宋军没法过河,于是郭逵和赵卨便命令兵将们伐木制造发石机攻打。后来又依照燕达建议,暗中派遣军队在山间设置埋伏,逐步减兵,诱敌深入。李常杰果然中计,倾数万众渡江出击,宋军伏兵尽发,步骑合击,趁其帆折樯摧之际,选精兵乘大筏猛攻,大败交趾军,击杀数千。李朝洪真太子和昭文王子战死,左郎将阮根被俘。但是《越史略》等越南史书的记载是这样的:李常杰知道宋军力困,于是连夜渡江袭击,大破宋军。宋兵死者十五六,只能退取广源州。也就是鼓吹李朝取得了最后的胜利。
富良江之战后不久越南皇帝李仁宗便申请求和。恰好此时宋军在南方水土不服,疫病流行,死者大半。郭逵表示“愿以一身活十余万人命”,同意撤兵。宋李两朝讲和。










