1217년 7월 황려현(黃驪縣 : 지금의 경기도 여주) 법천사(法泉寺)에서의 전투와 제주(堤州 : 지금의 충청북도 제천) 박달현 전투(朴達峴戰鬪)에서 중군병마사(中軍兵馬使) 최원세(崔元世)와 전군병마사(前軍兵馬使) 김취려(金就礪)를 비롯한 병사들의 활약으로 거란적을 크게 물리쳤다.
이들 전투에서 승리해 거란적의 남진을 저지하였다. 이때 거란적은 노약한 남녀와 병기 · 물자를 버리고, 명주 대관산령(大關山嶺)을 넘어 달아났다. 고려군은 거란적을 두려워하여 열흘 동안이나 진군하지 못하였다.
그러나 적이 이미 고개를 넘어 달아나고 있다는 사실을 알고, 중군 · 좌군 · 전군의 3군은 명주 모로원(毛老院)에 이르러 그들을 쳐서 이기고 옥대(玉帶)와 금은패 및 병기와 의장을 빼앗기도 하였다. 한편 3군이 거란적을 칠 즈음 가발병마사(加發兵馬使) 임보(任輔)가 병이 나자, 대장군 기윤위(奇允偉)를 그에 대신하게 하였다.
8월 다시 거란 유민군은 병졸을 모아 명주를 포위하였다. 이에 4군은 이들을 쫓아내어 명주 주민들을 이들로부터 벗어나게 하려 하였으나, 후군의 지원결핍과 교주방호병마사(交州防護兵馬使) 오수기(吳壽祺)의 패사, 우군의 등주(登州 : 지금의 함경남도 안변) 패배, 진주(陣主) 오수정(吳守貞)의 전사 등으로 인해 뜻을 이루지 못하였다.
이에 최충헌(崔忠獻)은 후군병마사 유돈식(柳敦植)의 지원결핍에 대한 책임을 물어 그를 파면시키도록 조치하였다. 그러나 유돈식이 최충헌의 외생(外甥)이라는 이유로 사면되었다. 이때의 전투는 상당히 치열했는데, 등주를 거쳐 여진땅으로 도망가는 거란적들을 쫓아가 치지도 못할 정도로 군사들이 지치고 기운이 빠졌다고 한다.
한편 김취려는 정주(定州 : 지금의 함경남도 정평)의 요충지에 사슴뿔 담장을 쌓아 이극인(李克仁) · 노순우(盧純祐) · 신덕위(辛德威) · 박유(朴蕤) 등 네 장수를 머물러 지키게 하고, 자신은 생천(栍泉 : 지금의 함경남도 金津江) 하구 부근인 흥원진(興元鎭 : 정평지방)으로 옮겨 웅거하였다.
그러하였음에도 고려군은 뒤이어 다시금 여진군과 합세한 거란 유민군의 공격에 시달려야 했다.