고구려는 한강 유역의 땅을 잃었지만 국력은 조금도 쇠약해지지 않고 도리어 신라, 백제 두 나라와 싸웠다. 또한 군대를 서쪽으로 보내 수나라의 영토를 침략했다. 수나라 황제는 크게 노하여, 바다와 육지로 대군을 보내 고구려를 여러 차례에 걸쳐 공격했지만 이기지 못하고, 그 군대는 오히려 살수(薩水) 【지금의 평안북도 청천강】 에서 을지문덕에게 크게 패했다. 수나라는 나라를 세운 지 겨우 수십 년 만에 망하고, 당(唐)나라가 수나라를 잇자, 고구려와 더불어 신라, 백제 두 나라도 함께 당나라에 대해 신하의 예를 취했다.