Al noreste se encuentran las primeras elevaciones del Sistema Subbético en la Sierra de Gibalbín (410 metros). En el extremo suroriental, un apéndice del municipio se adentra en la sierra de Ubrique, donde se alcanzan los 755 metros (Cerro de la Novia), en el parque natural de Los Alcornocales, por donde discurre el río Majaceite, afluente del Guadalete. La altitud oscila entre los 1079 metros (Sierra del Aljibe) y los 20 metros en el límite con Sanlúcar de Barrameda. La ciudad se alza a 56 metros sobre el nivel del mar.