太宗皇帝根据炀帝时候的战况,吸取了当时的教训,并针对这些教训想出了种种办法避免。炀帝征高丽,后勤就是一大问题,唐军为了解决这一问题携带了大量的食用牛羊,这样牛羊随军队行军,沿途还能背负辎重,大大减轻了士兵和沿途州府的负担。另外就是征伐高丽不进行全国征兵,而是采用募兵法,所谓“皆取愿行者”,结果,诏令发布以后,“募十得百,募百得千,其不得从军者,皆愤叹郁邑。” 共募得天下甲士 10 万,这可谓是真真正正的志愿军。这样的军队不但士气高昂,素质优秀,而且对国家不会有什么伤害,不像炀帝时代的强征入伍,会给全国经济生产造成巨大的破坏,而且士兵人数的减少反过来也大大减轻了后防后勤的压力,对国家不至于有所损伤。
贞观十八年七月二十日,放将作大监闰立德前往洪(州治今江西南昌)、饶(州治今江西那阳)、江(州治今江西九江)3州,督造运输军粮的船舰 400 艘;七月二十三日,诏遣营州都督张俭等率幽、营 2 都督兵及契丹、靺鞨(因为靺鞨当时分化为非常多的部族,有部分靺鞨族是被契丹族控制的,因此与契丹一起进攻高丽。)等部族兵众对辽东作试探性攻击,“以观其势”;又以太常卿韦挺为馈运使,民部侍郎崔仁师副之,专责河北诸州的粮草运输;命太仆少卿萧锐运输河南诸州粮饷入海,贮于乌湖岛(今山东南、北煌城岛)中,以供水军之需。
同年十月十四日,唐太宗乘车驾由长安行幸洛阳,欲御驾亲征,留宰相房玄龄和右卫大将军、工部尚书李大亮守卫京师。十一月初,营州都督张俭等帅唐军进至辽水西岸,正值河水泛滥,久不得渡。太宗以其畏惧怯懦,召回洛阳,欲治其罪。张俭到达洛阳后,向太宗具陈了辽水沿岸的山川险易和水草美恶,太宗大悦,令其重返辽西,待机渡河东进。贞观十八年十一月十四日,诏令刑部尚书张亮为平壤道行军大总管,沪州(今属四川)都督左难当为副,率江淮、岭南及缺中诸州兵及长安、洛阳 3000 募兵,战舰 500 艘,从莱州渡海趋平壤;又令太子詹事、左卫率李勣为辽东道行军大总管,江夏王李道宗为副,率步骑 6 万及兰(州治今甘肃兰州)、河(州治今甘肃临夏)二州降胡兵趋辽东。然后,两军合势并进。十一月三十日,诸路陆军集于幽州。太宗又遣行军总管姜行本、少府少卿丘行淹督众工匠在安萝山制造云梯、撞车等攻城器械。这时,天下各处前来应募的勇士及贡献攻城器械者不可胜数,唐太宗均亲加阅视,逐次取舍。不久,下诏布告天下,陈述了这次东征高丽的五条必胜之道:“一曰以大击小,二曰以顺讨逆,三曰以治乘乱,四曰以逸待劳,五曰以悦当怨”。用以动员民众,增强士兵必胜信念。十二月二日,下诏水陆诸军及新罗、百济、奚、契丹等分道进击高丽。二月十二日,唐太宗亲统六军从洛阳北上,三月十九日,抵达定州,留太子在此监国,令房玄龄与高士廉、刘泊、马周、张行成、高季辅等共同辅政,得以便宜从事,不复奏请。三月二十四日,太宗率部从定州北进,向辽东进发,至此,可谓是万事俱备,战争的号角已经开始吹响了。
唐太宗事前的考虑无疑是经过了深思熟虑的,而且有了炀帝的前车之鉴,行事就更为的小心谨慎,可是就是因为这样,不免有些方面就会矫枉过正。在士兵的人数方面,此次攻高丽只派了十万人马,可是这一点人数显然远远不够,高丽当时基本为东北第一强国,实力自然很强劲,仅仅十万人马去攻打,就军队人数来看,反而变成了弱的一方。而且高丽国不比草原汗国,只要军队战斗力强劲就可以解决一切。在高丽国中有大量的要塞式城堡,战争打到后来往往就是攻城战,而攻城战往往军队的人数比战斗力更为重要。太宗此次出兵,还因为年老而没有带名将李靖出征,太宗的出发点是好的,可是本人认为,这显然是个很大的失误。李靖可以说是我国历史上少有的全能将领,国内国外,高原战,平原战,沙漠战,攻城战,守城战,水战几乎都有打过的经验,并且百战百胜,对于攻打高丽这样的国家,显然李靖能比其它将领更好的适应,能起到更大的作用。最后关于外交方面,太宗对于东北亚的国际局势的复杂性估计不足,忽略了百济这个表面上对中国毕恭毕敬,其实暗藏鬼胎的国家,结果在后面百济的表现严重阻碍了太宗亲征的总体战略。