남북조 시대를 통일한 수는 고구려를 위협적으로 판단하고 이를 제압하기 위해 침략했으며, 수를 이어 당도 같은 맥락에서 고구려를 공격했습니다.
하지만 수는 여러 차례 고구려를 공격했지만 612년 을지문덕 장군에 의해 격퇴당했습니다. 을지문덕은 거짓 항복과 청야 작전으로 당군을 유인하였으며, 회군 중 살수 도하 시점에 후군을 공격하여 궤멸시켰습니다.
당나라도 고구려를 침략했지만 안시성 전투에서 크게 당해 고구려 공략에 여려움을 닥쳤습니다. 고구려군은 산성과 군민의 결속으로 약 88일간 버티며 당군의 공성전을 막고, 겨울, 군량 부족을 이용해 철수시켰습니다.
고구려의 승리 원리는 기병의 기동력, 산성 연쇄 방어, 보급선 공략, 유인·청야 전술, 굳건한 민심이 결합된 방어 체계였습니다. 살수에서는 적을 유인해 궤멸시켰고, 안시성에서는 장기 방어로 당군의 전력과 군량을 소진시켰습니다.