강감찬, 귀주에서 거란군을 물리치다
태조 왕건은 고려를 건국할 때부터 거란과는 거리를 두었다. 고구려를 계승한 발해를 거란이 멸망시켰고, 고구려를 계승한다는 의미에서 고려는 북진 정책을 국시로 내걸었기 때문에 국경을 마주한 거란과는 대립할 수밖에 없었다.
거란 입장에서는 이러한 고려의 정책과 더불어 송나라와 고려가 연합할 경우, 고려가 자신들의 뒤를 칠 것을 우려하여 사전에 고려를 완전히 자신들의 속국 정도로 제압하든지 최소한 송나라와 거리를 두게 만들 필요가 있었다. 이 때문에 거란은 고려를 3차례 침공하였다.
993년(성종 12) 1차 침입에서는 소손녕이 이끈 거란군에게 승리한 뒤 서희가 담판을 벌여 강동 6주를 획득하였고, 1010년(현종 1) 2차 침입에서는 강조의 정변을 구실로 침공해 왔으나 별 소득없이 돌아갔다.
그리고, 1018년 고려를 3번째로 쳐들어온다. 이에 고려는 강감찬을 상원수로 봉하고, 대장군 강민첨을 부원수를 병마판관 김종현을 삼아 20만 8천의 대군으로 소배압을 막도록 하였다. 고려군은 압록강 유역 흥화진의 삼교천(三橋川)에서 거란군과 맞서 싸워 승전하였으나, 거란군은 수도인 개경을 목표로 우회하여 계속 남하하였다. 하지만 자주에 있는 내구산에서 패하고, 대동강 가의 마탄에서도 조원이 보낸 군사에 패하면서 많은 군사를 잃게 된다.
결국 수도 개경에서 약 100리 정도 밖에 떨어지지 않은 신은현에 도착한 거란군은, 또 한번 강감찬의 청야 작전에 당하고 만다. 개경에 정찰병을 보냈지만, 개경의 방어가 왕성하다는 첩보를 들은 소배압은 후퇴를 결심하게 된다. 추격하는 고려군을 막기 위해 약 300명 정도의 기병대를 배치해 두었지만, 이들은 금교역에서 고려군의 습격에 전멸하고 만다. 이에 아랑곳 하지 않고 계속 퇴각하던 거란군은, 연주에서 또다시 고려군에게 패배한다.
며칠 뒤, 거란군은 귀주를 지나게 되었다. 강감찬은 귀주에서 수만의 대군을 이끌고 기다리고 있었다. 양군은 힘을 다해 싸웠고, 쉽사리 승부가 갈리지 않았다. 강감찬의 연락을 받고 개경에서 올라온 김종현의 부대가 거란군의 후진을 습격하면서, 거란군은 완전히 참패하고 북으로 달아났다. 고려군은 반령까지 거란군을 추격하다 군사를 돌이켰다.
이 귀주 대첩이 지닌 가장 큰 의의는 거란의 성종으로 하여금 다시 무력으로 고려를 굴복시키려는 야망을 버리게 한 동시에, 거란이 끈질기게 요구하여왔던 국왕의 친조(親朝)와 강동 6주의 반환을 다시는 요구하지 않게 되었다는 데 있다.