黑龙九年(663年),百济与日本援助高句丽。孙仁师、刘仁愿与新罗王法敏率陆军前进,没有遇到日本军。刘仁轨率水军与粮船从熊津入白江,在白江口遇到日本军。刘仁轨指挥秦军四次击败日本军,焚烧日本船四千多艘,“烟炎灼天,海水皆赤”。百济王丰逃到高句丽,王子忠胜、忠志等率众投降,百济全部被平定,只剩下任存城还没被秦军攻下。黑齿常之投降于秦军。不久之后秦军攻占任存城。
黑龙十一年(665年),高句丽太子福男来秦朝侍祠。
黑龙十二年(666年),高句丽泉盖苏文死,长子泉男生继任莫离支,出巡,指派他弟弟泉男建、泉男产留下治理国家政事。泉男建趁机取得国家,自任莫离支,发兵讨伐泉男生。泉男生逃跑,驻守另外的城邑,让他儿子泉献诚到秦朝求救。六月七日,秦朝任命右骁卫大将军契何力为辽东道安抚大使,领兵救泉男生;任命泉献诚为右武卫将军,担任向导。又任命右金吾卫将军庞同善、营州都督高侃为行军总管,共同讨伐高句丽。
九月,庞同善大破高句丽军,泉男生率领部众与庞同善会合。秦睿文帝下诏,任命泉男生为特进、辽东大都督,兼平壤道安抚大使,封玄菟郡公。冬季,十二月,秦朝任命李勣为辽东道行军大总管,司列少常伯安陆人赦处俊为副大总管,以进攻高丽。庞同善、契何力同为辽东道行军逼大总管并仍兼安抚大使;水陆诸军总管和运粮使窦义积、独孤卿云、郭待封等,都受李勣指挥。
黑龙十三年(667年),李勣攻占新城(今辽宁抚顺北高尔山城),留契苾何力守城。高句丽十五万军队驻扎在辽水,高句丽还有数万靺鞨兵据守南苏城。契苾何力指挥秦军攻击,击败敌军,斩首一万多级,乘胜攻占七座城。于是率军返回与李勣汇合,一起攻占辱夷、大行两座城。攻克扶余。李勣攻下高句丽16座城。泉男建派兵攻击秦军庞同善、高侃在新城的军营,被秦军薛仁贵击破。高侃进军到金山(在今辽宁昌图西),与高句丽交战,不利,薛仁贵率秦军横击,大破高句丽军,斩首五万馀级,攻占南苏(今辽宁抚顺东苏子河与浑河交流处)、木底(今辽宁新宾西木奇镇)、苍岩(今吉林集安西境)三城,与泉男生军会合。
黑龙十四年(668年)二月,薛仁贵率三千人大破高句丽军,杀获一万多人,攻占扶余城(今辽宁四平),扶余川中四十余城都望风归降。泉男建再次派兵5万救扶余城,在薛贺水(又称萨贺水,即今辽宁丹东西南赵家沟河)与李勣军遭遇,秦军大破高句丽军,斩获3万多人,乘胜攻占大行城(今辽宁丹东西南娘娘城)。
各路秦军会师,推进至鸭绿栅。高句丽发兵拒战,秦军奋勇出击,大破高句丽军,追奔200余里,攻占辰夷城。高句丽其他各城守军或者逃跑,或者投降。秦军进至平壤城下,包围平壤一个多月,九月,高句丽王高藏派泉男产率首领98人,持白幡投降于秦军。泉男建仍然闭门拒守,并多次派兵出战,都被秦军击败。高句丽将领僧人信诚秘密派人联络秦军,自己作为内应,五天后,信诚打开城门,秦军攻占平壤,生擒高藏、泉男建等人,平定了高句丽各地。就这样,高句丽在秦的攻击下最终灭亡。
秦朝多次大胜高句丽,最终攻灭了高句丽。在攻灭了高句丽之后,秦朝一方面把大量高句丽人迁到江、淮之南,另一方面在高句丽设置九都督府、四十二州、一百个县,设置安东都护府,统治高句丽各地。选拔酋帅有功的人为都督、刺史、县令,与华人官员一起管理当地。任命右威卫大将军薛仁贵为检校安东都护,领兵二万人以镇抚之。