고려는 건국 초기부터 북방 개척을 적극적으로 추진하였다. 태조(太祖)는 즉위 직후 황폐하던 평양(平壤)에 주민을 이주시키고 대도호부(大都護府)를 두었다. 얼마 후 그곳을 서경(西京)으로 삼았다. 서경 서부 연안 지역에는 함종현(咸從縣) · 용강현(龍岡縣) · 영청현(永淸縣) · 통해현(通海縣)이 설치되었다.
928년(태조 11)에 청천강에 도달한 고려는 안북부(安北府)를 두었고, 현 평안남도 일원에 진(鎭)을 설치해 나갔다. 이 시기를 전후하여 강덕진(剛德鎭: 成州) · 통덕진(通德鎭: 肅州) · 흥덕진(興德鎭: 殷州) · 정융진(靜戎鎭: 順州) · 안정진(安定鎭: 慈州) · 철옹진(鐵瓮鎭: 孟州) · 양암진(陽岩鎭) · 수덕진(樹德鎭) · 안수진(安水鎭: 价州) 등이 설치되었다. 진에는 진두(鎭頭)를 파견하여 다스리도록 하였다. 이들은 이후 대부분 주(州)로 승격되었으며 방어사(防禦使)가 파견되었다.
태조 말에는 청천강 중 · 상류 지역과 박천강 방면에 위주(渭州) · 박주(博州) · 무주(撫州) · 연주(延州) · 운주(雲州) · 태주(泰州) · 장덕진(長德鎭: 德州) 등이 설치되었다. 광종(光宗) 말에는 박천강을 건너 가주(嘉州)와 송성(松城)이 설치되었다.
이후 고려의 북방 개척은 소강 상태를 보였으나, 거란(契丹)과의 제1차 전쟁에서 서희(徐熙)의 강화 협상을 통해 거란에 대한 사대를 수용하는 대가로 압록강 동쪽의 개척권을 확보하고, 곽주(郭州) · 통주(通州: 宣州) · 철주(鐵州) · 용주(龍州) · 구주(龜州) · 흥화진(興化鎭) 등 강동6주(江東六州)를 설치하였다. 이렇게 국초 이래 개척된 지역은 995년(성종 14) 전국을 10도로 편제할 때 패서도(浿西道)로 편성되었다.
이후 고려는 압록강 어귀에서 동해안 도련포(道連浦)에 이르는 장성(長城)을 쌓아 국경을 확정하였다. 이 과정에서 고려는 인주(麟州) · 정주(靜州) · 위원진(威遠鎭) · 정융진(定戎鎭) · 영덕진(寧德鎭) · 영삭진(寧朔鎭) · 안의진(安義鎭) · 삭주(朔州) · 창주(昌州) · 청새진(淸塞鎭) · 영원진(寧遠鎭) · 평로진(平虜鎭) 등을 설치하였다.
서경은 『고려사(高麗史)』 「지리지(地理志)」의 북계 항목에 속해 있지만 또 하나의 도읍으로서 사실상 독립적인 지방 행정 구역이었기 때문에 안북대도호부(安北大都護府)가 관내 주진을 관할하는 형태로 관리되었다. 지방관으로는 방어군(주)에 5품 이상의 방어사 1인, 진에는 방어사 또는 7품 이상의 진장(鎭將) 1인, 현(縣)에는 역시 7품 이상의 현령(縣令) 1인을 각각 두었다. 이들을 총괄하기 위하여 3품의 병마사(兵馬使)가 파견되었다. 병마사는 989년(성종 8)에 처음 설치되었으나 이때는 상설 외직(外職)이 아니라 비상시에 출동, 주둔하는 군사 지휘관으로서의 성격을 가졌다. 뒷날 남도의 안찰사(按察使)에 비견하는 상임 외직으로 고정된 것은 현종(顯宗) 후년 이후의 일이다. 이 때부터 병마사가 군사와 일반 행정을 모두 관장하는 지방 장관으로서 예하의 행정 기구들을 지휘, 감독하였다.
양계는 다시 몇 개의 도를 나누어 감창사(監倉使)를 파견하였는데, 북계에는 운중도(雲中道)와 흥화도(興化道)가 있었다. 감창사는 재정 감독과 관리 감찰을 주 임무로 하였다. 또한 이와 별개로 몇 개의 분도(分道)를 두고 분도장군(分道將軍)을 파견하여 군사 임무를 분담하도록 하였다.
한편 서경과 안북대도호부는 물론 모든 주 · 진 · 현에는 지방군이 배치되어 있었다. 정용(精勇) · 초군(抄軍) · 좌군(左軍) · 우군(右軍) · 보창군(保昌軍) 등은 다른 지역에 비해 규모가 훨씬 컸다.
몽골과 전쟁을 벌이던 1269년(원종 10)에 서경에서 최탄(崔坦) · 한신(韓愼) 등이 반란을 일으키고 원(元)에 투항하자, 원은 서경에 동녕부(東寧府)를 설치하였다. 그 뒤 고려의 거듭된 요구로 1294년(충렬왕 20) 이 지역이 고려에 환속되면서 각 주 · 진에 지방관들이 다시 파견되었고 북계병마사의 후신으로 서북면도지휘사(西北面都指揮使)를 두게 되었다. 이 서북면도지휘사는 1308년(충렬왕 34) 충선왕(忠宣王)이 복위하면서 평양도존무사(平壤道存撫使)로 바뀌고 평양부윤(平壤府尹)이 겸하게 되었다. 1330년(충혜왕 즉위)에는 다시 '평양도순무사(平壤道巡撫使)'로 개칭되었다.
1369년(공민왕 18) 강계만호부(江界萬戶府)와 이성만호부(泥城萬戶府)가 새로 설치되었으며, 공민왕(恭愍王) 후년에는 도순문사(都巡問使)가 군사와 민정을 관할하는 행정 장관이 되었다. 이것이 1389년(공양왕 1)에 도절제사(都節制使)로 바뀌었다가 다음 해에 남도와 마찬가지로 서북면도관찰출척사(西北面都觀察黜陟使)가 파견되어 병마도절제사(兵馬都節制使)와 평양부윤을 겸하였다.
그 뒤 소속 군현이 점차 군사적 성격이 탈색되고 민사적인 일반 주 · 현으로 전환되면서, 방어사 · 진장 등은 남도와 같은 목사(牧使) · 부사(府使) · 지주사(知州事) · 지군사(知郡事) · 현령 등으로 바뀌었다. 행정 구역으로서의 북계(서북면)는 조선 초기까지 그대로 존속되다가 1413년(태종 13)에 평안도로 개칭되었다.
북계는 고려의 독특한 지방 제도로서 동계와 함께 양계를 구성하였다. 동계가 신라 이래의 행정 단위를 다수 포함한 것과 달리 북계는 건국 이후 새로 개척한 지역으로 구성되었다는 특징이 있다. 이로부터 고려 영토 개척의 추이를 조망하는 동시에 양계의 제도적 운영을 전형적으로 파악할 수 있다.