당태종의 주력군은 백암성을 삼키고, 안시성으로 몰려왔다. 더불어 당수군 제 3번대를 이끄는 장문한, 상하, 좌난당의 군대가 평양인근에서 덕창, 욕이, 수곡성 등을 치는 상황이 벌어진다. 이에 연개소문은 대대로 고정의에게 요동주력군 15만의 군사를 맡기고, 자신은 급히 도성인 평양성으로 돌아온다.
연개소문은 평양성의 군사를 재정비하고, 거란을 통해 설연타에 군사동맹을 요청했다. 또한 평양 인근에서 출몰하고 있던 당수군 제 3번대 장문한, 상하, 좌난당의 군대가 내지(內地)로 상륙할 수 없도록 강력한 방어선을 구축함과 동시에, 군대를 증편시켰다.
한편, 요동에선 당태종의 주력군이 안시성으로 진입하였다. 이에 대대로 고정의, 북부욕살 고연수와 남부욕살 고혜진, 돌격대장 고돌발이 이끄는 총 15만의 고구려군이 주필산에서 당군을 저지하는 작전을 펼친다.
(상세한 것은 아래, 주필산전투 참조)
그러나 공명심에 들뜬 고연수와 고혜진이 먼저 선공을 펼치는 바람에, 당군의 육화진 전술에 말려들어 큰 곤경에 처하게 된다. 이 과정에서 당나라의 장수 계필하력이 고돌발에게 창에 찔려 옆구리에 큰 상처를 입었고, 고정의가 이끌고 온 정예군으로 인해 행군총관 왕군악이 전사하는 상황이 벌어진다. 이와 동시에 이세적, 이도종의 행군단이 포위되어 가면을 쓴 설인귀가 구해주기도 한다.
이 일로 설인귀가 유격장군으로 발탁되었다. 하지만 당태종의 명령을 받은 장검의 군대가 건안성으로 진출하고, 고구려 후발방어선의 취약점을 공격하려는 책동을 부리자 고정의는 일시적으로 주필산을 내주고, 후발방어선의 방어력을 높이는데 주력한다. 그는 건안성의 성주와 힘을 합쳐, 건안성 인근에서 장검의 군대를 대패시켰고, 장검은 거의 모든 병력을 잃어 영주로 돌아가야 했다.
일시적으로 주필산을 점령한 당태종은 안시성의 성주 양만춘에게 항복을 권유했다. 그러나 양만춘은 군사들을 시켜 당태종이 보낸 깃발을 성루(城樓)에 달고서 욕설을 퍼부었다. 이에 발끈한 당태종은 군사를 동원해 안시성을 공격하게 했다. 그러나 안시성은 곧 조용해졌다.
그런데, 갑자기 많은 화살들이 날아들어 당군이 수천여명이나 희생되는 상황이 벌어졌다. 수개월에 걸쳐 당태종의 발목을 잡을 안시성전투의 서막이 떠오른 것이다. 안시성은 간단하게 무너질 성이 아니었다.
안시성에는 비장의 시설이 있었다. 바로 돈(墩)이었다. 이것은 참호처럼 성벽으로 두르고, 활을 쏠 수 있는 구멍과 창검으로 성벽을 돈을 타려는 적을 찔러 죽이는 시설이었다. 고구려군이 모습을 드러내지 활을 쏠 수 있었던 것은 수성시설 가운데 하나인 돈이 있었기 때문이다.
당군은 대체 어디서 화살이 날라와 수천명의 군사를 잃은지 알 수 없어 미궁에 빠졌다. 그리고 안시성은 요동성과 다른 철옹성의 산성이었다. 절벽과 좁은 입구가 가로 막고 있어, 공성병기가 진을 벌리고 전투를 치르기가 용이하지 않았다.
활로가 뚫리지 않자, 장수들 가운데서도 의견이 점점 분분해졌다. 안시성을 버리고, 오골성으로 향하자는 주장도 나왔다. 그러나 안시성을 버리고, 오골성으로 향하는 것은 고정의의 방어병력까지 생각한다면 위험한 일이었다. 결국 해답은 바닷길에 있었다. 바닷길을 통해 대규모의 군대를 압수(鴨水)에 상륙시키는 것이었다.
이미 평양성의 연개소문은 당수군 제 3번대로 인해, 어찌할 수 없는 상황이었고… 당의 주력군도 안시성에서 더는 활로를 뚫지 못했다. 특히나 돈 속에 숨어서, 화살을 쏘아대는 통에 접근만 하면 당군의 희생만 커져 답을 찾지 못하고 있었다.
공성병기로 때려도 강력한 위력을 발휘하기가 어려웠고, 안시성에서도 공성병기를 견제하는 쇠뇌공격과 마름쇠공격이 잇다라서 점점 해답을 찾아내지 못했다. 이에 이세적은 당태종에게 다음과 같이 아뢰기도 했다.
"안시성이 함락되는 날, 안시성의 남자들은 모두 죽여야 합니다."
이러한 극단적인 진언을 하기도 했다. 그럴 정도로 안시성에서 해답을 찾지 못한 당태종이 의지하는 것은 장량의 평양도행군이었다. 장량은 수군에 투입된 설만철에게 병력을 내주어, 건안성과 오골성, 고구려의 요동전선을 배후에서 공격할 수 있는 상륙지를 확보하도록 하였다.
또한 당태종 주력군을 보좌하다가 다시금 장량 휘하로 들어온 염입덕은 이무렵, 가시성과 창려성을 무너뜨리고 이곳에 진주하고 있었다. 이에 설만철은 염입덕의 부대와 함께 활로를 뚫기 위해 대규모의 수군을 몰아갔다.
이때가 645년 6월 5일에서 6월 15일 사이였다. 고구려의 금석문에선 이를 창려해전으로 표기하고 있다. 고구려수군의 석성도사 연수영이 이끄는 고구려수군은 이때 창려 여목도로 진군하여, 당수군을 격파한다. 이 창려해전에서 당수군은 6천명의 전사자와 50여척의 군선이 불에 탔고, 많은 보급품을 고구려수군에 빼앗기게 된다.
제 1차 고당결전 개전 이래 고구려수군이 얻은 최초의 승리였다. 644년, 첫 상륙전인 용구진전투에서 장검에게 패했던 고구려수군은 다음해 비사성군주 우소가 수군을 계속 연패시킬때까지 계속 패퇴만 하였다. 이 창려해전은 밀리기만 하던 고구려수군을 동아시아를 제패하는 대양수군으로 키워내는 발판이었다.
고구려 대막리지 연개소문의 이복여동생 연수영이 이끄는 고구려수군은 창려에서 당수군을 대파시켰고, 해로를 통해 활로를 찾아보려던 당태종의 계략을 좌절시켰다. 더불어 해로에서의 반격으로 당태종의 해로보급을 약화시켜, 마침내 그들의 보급선을 길게 만드는 효과를 가져왔다. 적병의 사살수와 전과 면에서 창려해전이 마수산전투에서 장군예를 패주시킨 것이나, 고정의장군이 왕군악을 전사시킨 것에 대면 대승이라고 할 순 없었다.
그러나 단 한명의 전상자도 없이, 설만철의 수군을 전멸상태로 몰았고 밀리기만 하던 고구려수군이 기지개를 편다는 것에서 실로 대단한 위용이라 할 수 있었다. 더욱이 고정의가 우려하던 것을 말끔히 씻어주었다.
고정의가 가장 우려하던 것은 해로가 뚫려, 당군이 압수방면으로 다시금 수십만의 군대가 상륙할 것을 염려했다. 이럴 경우, 요동과 평양이 동시에 고립되는 최악의 상황이 일어날 수 있었다. 더욱이 상대가 당태종이었기에, 이 점은 고정의를 더욱 긴장시켰다. 그런데 연수영으로 인해 당군의 작전에 심각한 차질을 가져오게 되었다.
수군에선 연달아 패전을 거듭했고, 육군에선 부분부분 승리를 거두고 있었지만 대세(大勢)를 가름할 확실한 영향력이 부족했다. 개모성에서 당장수 강확을 사살한 일, 그러나 개모성이 함락됐고… 요동성 인근 마수산에서 장군예의 군대를 패주시킨 일, 그러나 곧 당군의 반격으로 많은 개마기병이 전사했다.
주필산에선 고정의의 명령을 어긴 고연수, 고혜진의 무리한 작전으로 아찔한 순간을 맞이했다. 왕군악을 전사시키고, 적장 계필하력을 중상을 입혔지만 당군의 병력이 많아 고구려의 취약점을 공격할까봐 일시적으로 주필산을 내주어야 했다.
장검의 군대를 건안성에서 패주시켰고, 안시성에서의 저항으로 당태종이 주필산에서 더는 활로를 찾지 못하게 되었지만 결정적으로 대세를 움켜쥘 수 있는 승전을 거두지 못했다. 연수영의 창려해전은 규모에 비하여 그 영향력은 실로 대단했다. 연전연승을 하던 당수군에게 크나큰 충격을 안겨다 주었으며, 당태종의 군대가 더는 퍼지지 못하도록 몰아넣는 계기가 되었던 것이다.
(재밌는 것은 당의 모든 공문서와 사서에 고구려가 남긴 금석문의 기록과 같은 내용은 찾아볼 수 없다는 것입니다. 더불어 장문한이 처형되고, 장량이 감옥에 갇혔다는 것입니다.)