581년 북주의 관리였던 양견이 수나라를 건국하고 고구려에게 군신의 예를 갖춰 조공을 바칠 것을 강요합니다. 이에 고구려는 서북쪽의 돌궐과 결탁하려고 사신을 보냅니다. 영양왕은 수나라가 고구려를 침공할 것을 예견해 선제공격으로 요서지방을 공격합니다. 분노한 수문제가 30만 대군으로 고구려를 쳐들어 왔습니다. 하지만 침공 시기가 여름 장마철이라 홍수 폭풍 전염병 등으로 고구려는 수군을 쉽게 물리칩니다. 아버지와 형을 살해하고 황제에 오른 수양제는 612년 113만 대군으로 고구려를 재차 침입해왔습니다. 고구려의 청야입보(들을 깨우고 비우고 성에 들어가 싸움)에 의한 거점확보와 적을 끌어들여 지치게 한 다음 공격하는 전략으로 맞섭니다. 요동성 함락도 쉽지 않자 30만 별동대로 평양성을 치기 위해 나서게 합니다. 이에 고구려의 명장 을지문덕은 백성들을 이웃 성으로 옮기고 마을을 비우고 모든 우물을 막아버렸습니다. 식량도 다 떨어지고 물조차 마실 수 없었던 수군은 거의 기진맥진한 상태였습니다. 여수장 우중문이란 시를 지어 보내 그만 돌아가라고 정중히 이야기했으나 알아차리지 못하고 공격해오자 살수에서 막아두었던 물꼬를 터뜨려 30만 수군 중에 살아 돌아간 이는 2천7백여명 뿐이었습니다.