Situado en el norte de la comarca del Bajo Llobregat, a unos 30 km de Barcelona, en la confluencia de dos ríos, el Llobregat, en la parte este del término municipal, y el río Anoia, afluente del anterior.