贞观十八年四月二十二日,大唐兵部尚书李绩率主力七万余大军急趋辽东,展开辽东城战役——李绩自柳城(今朝阳县)进发时,大肆声张进军怀远镇(今沈阳市西南),而潜师北趋甬道(隋伐辽时所设浮桥,今辽中县西北),出高句丽不意。四月二十六日,李绩自通定镇(今沈阳市北)渡过辽水,高句丽守军大骇,城邑皆闭门自守。李绩所部遣先头部队张俭以胡兵为前锋,渡辽水后攻建安城(今营口市东南),破高丽兵,斩首数千级。
贞观十八年四月二十七日,夏江王李道宗率部越过新城(今海城县)攻破盖牟城(今盖县),虏获两万余人,粮食十万余石;同日,张亮率舟师自东莱渡海袭击卑沙城(今旅顺西北),破城俘获八千余众,至此,三路征高句丽之大军已齐至辽东。
贞观十八年五月初一,李世民率部赶到前军,令李绩强攻辽东城(今辽阳市),高句丽遣步骑四万驰援辽东城,经盖牟城时,中了李道宗所派之四千精锐骑兵的埋伏,高句丽军大败而逃,辽东遂成孤城;五月初二,李绩率部用抛石车、撞车猛攻辽阳城,而高句丽军则在城上积木为楼,进行抵抗,李世民亲引精兵围城数重,鼓噪声震天地,四面围攻,昼夜不停,战事激烈,至五月初八日,南风大作,李世民趁机遣锐卒登冲竿(长竹竿)之末,焚其南楼,火延烧城中,屋宇皆尽,高句丽守军力战不能敌,城遂破,杀敌万余,俘获四万之众,获胜之唐军主力趁势北进,展开围攻白岩城(今抚顺市南)之战。
贞观十八年五月初二,清水河战败之薛延陀拔灼所部不敢再与安西唐军决战,被迫向乌拉斯台隘口方向撤军,安西唐军并未趁机出击,而是离着十里许,缓缓挥军尾随其后,继续压迫拔灼所部东撤;五月初五,拔灼所部得知确切消息——大度设所部已然全部从乌拉斯台隘口撤回了薛延陀国内,并以重兵把守隘口,不肯放拔灼所部通过,彼时,因回纥﹑仆固两部落联军已投靠大度设,双方兵力大体相当,而大度设占有地利之优势,拔灼虽又气又恼,却不敢在唐军压迫下强攻乌拉斯台隘口之大度设所部,不得不转道向北,一路赶往乌伦古河边的塔克什肯隘口,企图冲破兵力薄弱的葛逻禄所部之封锁,然其尚未行至乌伦古河,便已被沿乌伦古河南下之莫离所部三国联军挡住了去路,而与此同时,安西唐军主力也趁机赶了上来,联兵十三万余众将拔灼所部困在了乌伦古河南岸的抱犊囤,双方对峙数日,至五月初九止,并未有大的战事发生。
吓跑了大度设,围住了拔灼,北疆的战事已到了尾声,