La ciudad se encuentra a orillas del mar Mediterráneo y su término municipal, de una superficie de 31,40 km², linda con los de Barcelona, Hospitalet de Llobregat, Cornellá de Llobregat, San Baudilio de Llobregat y Viladecans.