본명은 대조영(大祚榮)이다. 고구려 유민으로서 고구려 멸망 후 당나라의 영주(營州) 지방에 그 일족과 함께 옮겨 와 거주하였다.
『구당서(舊唐書)』에 의하면 696년이진충(李盡忠)·손만영(孫萬榮) 등이 이끄는 거란족의 반란으로 영주 지방이 혼란에 빠지자, 대조영은 말갈 추장 걸사비우(乞四比羽)와 함께 그 지역에 억류되어 있던 고구려 유민과 말갈족을 각각 이끌고 당나라의 지배에서 벗어나 동으로 이동하였다.
이에 당나라는 대조영에게 진국공(震國公)을, 걸사비우에게는 허국공(許國公)을 봉하고 회유해 당나라의 세력 아래 다시 복속시키고자 했으나 그들은 거부하였다. 당나라는 거란군을 격파한 뒤, 성력연간(聖曆年間, 698∼699)에 추격군을 파견하였다. 당나라에 항복한 거란족 출신의 장군 이해고(李楷固)가 이끄는 당나라 군사가 공격해 오자, 걸사비우의 말갈족 집단이 먼저 교전했으나 대패하였다.
그러자 대조영은 휘하의 고구려 유민들을 이끌고 당나라 군사의 예봉을 피해 동으로 달아나면서, 한편으로 흩어진 걸사비우 예하의 말갈족 등을 규합하였다. 당나라 군사가 계속 추격해 오자, 대조영은 지금의 혼하(渾河)와 휘발하(輝發河)의 분수령인 장령자(長嶺子) 부근에 있는 천문령(天門嶺)에서 그들을 맞아 싸워 크게 격파하였다.
그 뒤 계속 동부 만주 쪽으로 이동해 지금의 길림성(吉林省) 돈화현(敦化縣)인 동모산(東牟山)에 성을 쌓고 도읍을 정하였다. 698년에 국호를 진(震), 연호를 천통(天統)이라 하였다.
그러나 『오대회요(五代會要)』에는 손만영의 반란 때 고려 별종인 걸걸중상(乞乞仲象)과 말갈인인 걸사비우가 요동으로 달아나 고구려 고지(故地)를 나누어 다스렸고, 이에 당나라는 걸걸중상에게는 진국공(震國公)을, 걸사비우에게는 허국공(許國公)을 봉하고 회유해 당나라의 세력 아래 다시 복속시키고자 했으나 걸사비우가 이를 거부하였다고 한다. 이에 당이 이해고를 출전시켜 걸사비우를 죽였는데, 이때 걸걸중상은 이미 죽고 그의 아들인 대조영이 걸사비우의 무리까지 병합한 것으로 나오고 있다. 이러한 『오대회요』의 기록은 835년 발해에서 사신으로 파견되었던 장건장(張建章)이 남긴 『발해국기(渤海國記)』에 의한 것으로 파악되고 있어 9세기의 발해인의 인식을 반영한 것으로 보아 그 가치가 인정되고 있다.
당시 대조영 휘하의 집단은 오랜 억류 생활과 계속된 이동 과정에서 겪은 시련으로, 강력한 결속력과 전투력을 가진 세력으로 성장하였다. 대조영은 무예와 지략이 뛰어나 그 집단을 기반으로 급속히 동부 만주 일대까지 세력을 확대하였다.
당시 그 지역은 별다른 유력한 토착 세력이 없었고, 국제적으로는 일종의 힘의 공백 지대로서 말갈족의 여러 부족들과 고구려 유민들이 각지에 산재해 있었다. 이러한 때 새로운 힘의 구심점으로 대조영 집단이 등장하자, 고구려 유민과 말갈족의 여러 부족들이 귀속해 들어왔다.
건국 후 곧이어 당나라와 대결하고 있던 몽고고원의 돌궐(突厥)과 국교를 맺고 신라와도 통교했으며, 당나라와는 중종 때 정식으로 통교하였다. 당나라는 713년 대조영을 발해군왕으로 책봉했는데, 그 때부터 발해라는 국호가 사용되었다.