Localiza-se na margem ocidental da Baia de Maputo, no extremo sul do país, perto dafronterira coma Africa do Sul e, da fronteira com a Suazilandia e, por conseguinte, da tripla fronteira dos três países. Até 13 de Março de 1976, a cidade era denominada "Lourenço Marques" em homenagem ao explorador português homónimo.