본래 신라 초기에는 골포현(骨浦縣)이었는데 757년(경덕왕 16)에 합포로 고쳐 의안군(義安郡: 지금의 창원)의 영현(領縣)으로 되었다.
1018년(현종 9)에 금주(金州: 지금의 김해)에 예속시켰다가 뒤에 감무(監務)를 두었다. 고려와 원나라 연합군의 일본 정벌이 끝난 1282년(충렬왕 8)에 회원현령(會原縣令)으로 승격시켰다. 1408년(태종 8)에 창원부에 편입되었다.
1914년 행정구역 개편 때 합포 지역에 마산부가 설치되었으며 1949년에 마산시가 되었다. 이곳은 역사적으로 많은 전쟁을 겪은 곳이다. 고려 원종 때 삼별초(三別抄)가 침입하여 전함 20여 척을 불태운 적이 있었다. 1274년(원종 15)에는 원나라 세조가 명령하여 합포에 정동행성(征東行省)을 설치하여 일본을 정벌하도록 하였다.
고려의 김방경(金方慶)과 원나라의 흔독(欣篤)·다구(茶丘)가 이끄는 연합군은 원나라 군사 2만 명, 아군 5,000명, 전함 900척을 이끌고 합포를 출발하였다. 1차 정벌은 대마도를 친 다음 일본 본토에 상륙하려다 풍랑으로 실패하였다.
1281년 10만의 연합군이 2차 정벌을 할 때는 왕이 합포에서 군대를 사열하여 출정시켰으나 또다시 태풍을 만나 실패하고 말았다.
충렬왕 이후 고려 말까지 왜구는 5회 이상 합포를 침략하였다. 1593년(선조 26)에는 이곳에 있었던 경상우도병마절도사영을 진주로 옮겼으며, 임진왜란 때는 창원부가 점령당한 뒤 많은 피해를 입었다.
조선 시대에는 경상도에서 세곡을 운반하는 가장 큰 포구였다. 이곳에는 좌조창(左漕倉)·해창(海倉)·반창(盤倉) 등의 창고가 있어 경상도 남부 지방의 세곡을 모아 남해안과 서해안을 돌아 경창(京倉)으로 보냈다.
조선 시대에도 합포 서쪽에 마산포(馬山浦)가 있었다. 육상교통으로는 창원과 진해를 잇는 도로가 발달하였다. 합포의 지명은 골포에서 나온 것으로 ‘큰 포구’라는 뜻을 가진다.