연개소문이 권력을 장악한 직후, 신라의 김춘추가 찾아와 군사 지원을 요청했다. 김춘추는 백제의 공격을 받아 위기에 빠진 신라를 도와달라고 했다. 보장왕은 “고구려의 옛 땅인 한강 유역을 돌려주면 구원병을 보내겠다.”라고 대답했다. 보장왕 뒤에 선 연개소문의 의견이라고 보아야 할 것이다. 한강 유역을 돌려주면 구원병을 보내주겠다는 말은, 신라로서는 받아들일 수 없는 제안이었다. 연개소문도 신라가 그 제안을 받아들이리라고는 생각하지 않았을 것이다. 신라 대신 백제를 파트너로 선택했다는 의미로 보면 된다. 연개소문은 이후 백제와 동맹을 맺고 신라를 공격했고, 한반도에서 고립된 신라는 당나라에 도움을 요청했다.
한편, 당태종은 중원을 장악하고 나서 돌궐을 복속시키고, 서역의 고창국을 멸망시키며 천하통일의 야망을 하나씩 실현해가고 있었다. 동북아시아에서 독자적인 세력을 형성한 고구려는 그가 넘어야 할 마지막 산이었다. 그런 그에게 연개소문의 반역 사건은 좋은 빌미가 되었다. 여기에 신라마저 도움을 요청하는 상황이었다. 당태종은 고구려에 사신을 보내 신라에 대한 공격을 당장 중지하고, 만일 다시 신라를 공격한다면 고구려를 공격하겠다고 통보하는 등 신라를 빌미로 고구려를 압박했다. 연개소문이 그 말을 들을 리 없었다.
644년 마침내 당태종은 다음과 같이 선언하며 고구려 정벌을 선포했다. “연개소문이 임금을 죽이고 대신들을 살육했으며, 그 백성을 참혹하게 대하더니 지금 또 나의 명령을 위반하고 이웃 나라들을 강제로 침략하니 토벌하지 않을 수 없다.” 그러나 이것은 명분일 뿐이었다. 중국 역사서를 살펴보면, 당태종은 연개소문이 집권하기 전부터 몇 차례나 고구려 정벌의 뜻을 드러내고 있음을 확인할 수 있다. 중국 중심의 천하를 꿈꾸는 이세민에게 고구려는 제압해야 할 상대였고, 여기에 반발하는 연개소문과의 충돌은 피할 수 없는 대결이었다.
이렇게 고당전쟁이 시작되었다. 요하 강을 건넌 당나라 군사들은 개모성을 점령하고 요동성을 함락시켰다. 전쟁 초반에는 당나라의 공세가 성공적이었던 듯하다. 그러나 고구려군은 거센 반격을 통해 신성, 건안성 등을 지켜내며 당나라 군사의 발길을 묶었고, 전쟁이 장기전으로 접어들면서 차츰 승기를 잡아갔다. 시간이 지날수록 당나라 군사들은 고립되고 굶주렸다. 그리고 마침내 5개월에 걸친 안시성 전투를 승리로 이끌며 고구려군은 당나라 군사들을 물리칠 수 있었다.
단재 신채호는 [조선상고사]에서 당태종이 퇴각할 때 연개소문이 그 뒤를 쫓아서 만리장성을 넘어 당나라로 쳐들어갔다고 하는데, 현재로서는 근거를 찾기 어렵다. 퇴각하는 길에 병을 얻은 당태종은 이후 직접 군대를 이끌지 못한 채 고구려를 공격하라는 명령만 내리다가 결국 성공하지 못하고 649년 병이 악화되어 죽었다. 그 명령에 따라 당나라는 647년, 648년 계속 고구려를 침입했으나 연개소문이 이끄는 고구려군은 번번이 이를 물리쳤다.
|