661년 보장왕 20년 가을 8월, 마침내 소정방의 평양도행군, 방효태의 옥저도행군, 임아상(任雅相)의 패강도행군 등의 당나라 대군은 패수, 지금의 대동강하류에 상륙하였다. 이들은 정확히 1년 전 백제침공 때도 똑같이 백제영토였던 기벌포에 상륙하여 방어하던 백제 군을 물리치고 백제 수도 사비성을 함락시킨 승리의 경험이 있었다. 장소는 달랐지만 시작은 같았다. 갑작스러운 당의 수십만 대군이 바다로부터 기습적으로 밀려오자 해안에서 격렬히 반격하던 고구려 군사들도 크게 격파당하였고 결국 인근 마읍산을 탈취당하였으며 마침내 얼마 멀지 않는 평양성까지 도달하여 포위하였다.

또한 9월, 계필하력(契苾何力)의 요동도행군은 압록강 하류로 상륙한다. 고구려에서는 대막라지 연개소문이 그의 아들 연남생에게 고구려 정예부대 정병 수 만명을 이끌고 압록강을 수비하게 하고 있었고 당나라의 모든 부대가 건너오지 못하였다. 하지만 661년의 겨울은 아주 빨리 찾아왔고 계필하력의 요동도행군이 압록강에 도착하였을 때는 압록강에 얼음이 얼었다. 계필하력은 군사를 이끌고 얼음 위로 강을 건너 북을 두드리고 함성을 지르며 기습 공격해왔고 이에 방심하던 고구려 군사가 패주하였다. 계필하력이 수십 리를 추격하며 고구려 군사 3만명을 죽였다. 남은 군사는 모두 항복하였고, 연남생은 간신히 자기 몸만 피하여 달아났다.

이렇게 개전초기 당의 주력 대군은 순식간에 대동강에 상륙하여 방어하던 고구려 군을 물리치고 평양성을 포위하였고 또다른 정예주력부대는 압록강 하류를 방어하던 고구려 정예부대를 섬멸하고 진주하게 되어 고구려는 주력 대다수 군이 있는 압록강 이북 요동 지역 및 국내성과 압록강 이남의 수도 평양이 단절되는 위기까지 맞게 된다. 마치 과거 한니발의 카르타고 주력부대와 대치하던 로마군이 스키피오의 지휘하에 뒤를 돌아 카르타고의 수도를 직공하여 함락시켰던 상황과 비슷하게 되었다. 전쟁의 양상은 처음 당나라가 기획했던 방향으로 순조롭게 진행되었다. 철옹성이었던 고구려의 수도 평양성이지만 외부의 지원을 받을 수 없게 완전히 포위된 고립 상황이 되어 큰 위기를 맞게 되었다.
고구려 군사가 수십리 쫓아가서 몰살시킨 계피하력의 군사수는?
3만