이 지역을 관북지방이라고도 한다. 함경이란 함흥과 경성의 머리글자를 합하여 만든 지명이다. 본래 숙신(肅愼)국의 땅이었는데 일명 읍루(挹婁)ㆍ물길(勿吉)ㆍ 말갈(靺鞨)ㆍ 여진(女眞) 등의 명칭이 있었다.
서기전 2세기경에 한나라가 이곳에 현도군(玄免郡)을 함흥 부근에 설치하였고, 뒤에 옥저(沃沮)국이 설치되었다. 이곳에는 동옥저ㆍ남옥저ㆍ북옥저 등이 있었다. 56년(태조왕 4)에 고구려가 동옥저를 멸하여 영토를 넓혔고 3세기경에는 신라의 영토가 영흥평야(永興平野)까지 다다랐다.
7세기에는 발해 영토가 영흥에서 신라와 경계를 이루었고 신라 말기에는 여진족의 근거지가 되었다. 고려 성종 때 정평 이남이 삭방도(朔方道)에 들었고, 정종 때 동계(東界)로 바뀌었다. 한편 여진족의 침입에 대비하여 3개 관문( 정주ㆍ선덕ㆍ원흥)과 장성(長城)을 축조하였다.
문종 때에는 동북면(東北面)이라 하였고 예종 때에는 여진족을 축출하여 9개 성을 두었다가 2년 후에 되돌려 주었다. 인종 때에는 금나라의 영토였다가 뒤에 원나라가 다스렸다. 1356년(공민왕 5)에 원나라가 지배하던 8개 주를 회복하여 함경산맥 동쪽해안의 칠보산(七寶山) 남쪽이 고려의 영토가 되면서 강릉삭방도(江陵朔方道)라 하였다.
1388년(우왕 14)에 삭방도를 따로 분리하였다. 1413년(태종 13) 관내에 영흥과 길주가 있다 하여 영길도(永吉道)라 하였고, 1416년에 영흥을 강등하여 화주목(和州牧)이라 하고 함주를 승격하여 함흥부(咸興府)라 하였다. 관찰사 본영(本營)을 함흥에 두고 함길도(咸吉道)로 고쳤다.
세종 때에는 김종서(金宗瑞)에게 명하여 육진을 설치하였다. 1470년(성종 1)에 함흥을 강등하고 본영을 영흥으로 옮겨 영안도(永安道)로 고쳤다가 1509년(중종 4)에 함흥부 및 관찰영을 복구하고 함경도로 개칭하였다. 1895년(고종 32)에 23부제로 개편되면서 함흥부ㆍ갑산부ㆍ경성부 등 3부로 되었고, 1896년에 13도제로 개편되면서 함경남도와 함경북도로 나누어졌다.