본래 고조선의 영역이었고 고구려와 발해에 속하였다. 그 뒤 여진족의 영역이 되어 궁한촌(弓漢村)이라고 하였다. 1107년(예종 2) 윤관(尹瓘)의 북벌로 여진을 몰아낸 뒤 670간(間)이나 되는 성을 쌓고 길주(吉州)라 이름지었다.
다음해 방어사(防禦使)를 두었고, 1111년에 중성(中城)을 쌓았다. 뒤에 여진에게 돌려주었으며, 원나라가 점령하여 해양(海洋, 또는 三海洋)이라고 불렀다. 공민왕 때 수복하고, 1390년(공양왕 2) 길주등처관군민만호부(吉州等處管軍民萬戶府)를 설치하여 웅주(雄州)ㆍ영주(英州)ㆍ선화(宣化) 등의 진(鎭)을 모두 예속시켰다.
1398년(태조 7) 길주목이 되었고, 1467년(세조 13) 이시애(李施愛)의 반란이 있은 뒤 1469년(예종 1) 현으로 강등되어 길성이라 고치고, 북쪽의 영평(永平) 등의 지역을 떼어 내어 따로 명천현(明川縣)을 설치하였다.
1512년(중종 7) 다시 길주로 승격시켜 목사와 판관을 두었다가 다음해 다시 현으로 강등시켰고, 1605년(선조 38) 길주목으로 복구되었다. 1895년(고종 32) 경성부 길주군, 1896년 함경북도 길주군이 되었다.