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