原為合浦縣地。
清康熙元年(1662)析合浦縣南端(即現(xiàn)北海)置北海鎮(zhèn),以北海村得名。
咸豐六年(1856)珠場(chǎng)巡檢司自合浦南康移駐北海。
1912年成立北海自治會(huì),仍屬合浦縣地,屬?gòu)V東省欽廉道。
1926年改置北海市政籌備處,直屬省。
1930年廢市政籌備處復(fù)為合浦縣地,屬南區(qū)綏靖公署。
1949年置北海軍政委員會(huì),屬南路專(zhuān)區(qū)。
1950年析合浦縣南部分地置北海市,為省轄市。
1952年改為廣西省直轄市。
1955年復(fù)歸廣東省。
1956年降為縣級(jí)市,屬合浦專(zhuān)區(qū)。
1959年改北海市為北海鎮(zhèn)(縣級(jí)鎮(zhèn)),屬湛江專(zhuān)區(qū)。
1964年復(fù)置北海市(縣級(jí))。
1965年屬?gòu)V西壯族自治區(qū)欽州專(zhuān)區(qū)。
1971年屬欽州地區(qū)。
1983年改為自治區(qū)轄市。
1984年辟為沿海經(jīng)濟(jì)開(kāi)放區(qū)。
1987年欽州地區(qū)合浦縣劃入。
1994年撤銷(xiāo)郊區(qū),改設(shè)銀海區(qū);從合浦縣析出南康、營(yíng)盤(pán)2鎮(zhèn)置鐵山港區(qū)。