Tiene su nacimiento en la provincia de Cádiz, en la sierra de Pozo Amargo, dentro del término municipal de Puerto Serrano, pero a los pocos kilómetros bordea ya la sierra de Esparteros (Morón de la Frontera), discurriendo casi la totalidad del río por la provincia de Sevilla, hasta desembocar en el río Guadalquivir, a unos veinte kilómetros al sur de la ciudad de Sevilla.