La fuerza total de los cruzados ascendía a unos 5000 caballeros y soldados, más unos 1000 marineros. Dos sacerdotes representando a los dos papas en conflicto bendijeron a los cruzados. El 1 de julio de 1390, una flota de 60 barcos dejó el puerto de Génova, llegando a Mahdía a finales del mes, donde las tropas desembarcaron sin hallar oposición.
Los cruzados instalaron un campamento y procedieron a circunvalar la ciudad con un muro, dando inicio dos meses de infructuoso sitio, ya que los invasores no disponían de suficiente material de asedio como para abrir brecha en sus muros.
El sultán háfsida, Abu al-Abbas Ahmad II, apoyado por los reyes de Bugía y Tremecén, reunió un ejército de 40 000 hombres para socorrer la plaza. Acampando en las proximidades del cerco, los berberiscos evitaron presentar batalla campal, y en vez de eso se dedicaron a hostigar a los cruzados, que se atrincheraron fortificando su campamento.
El sultán háfsida envió un emisario a los franceses, preguntándoles por qué le atacaban, si la controversia era entre los genoveses y él, una trifulca común entre vecinos. En su respuesta, les dijeron que eran unos infieles que habían crucificado al Hijo de Dios, Jesucristo. Los berberiscos se rieron, diciendo que eso solo podía imputarse a los judíos, de modo que se rompieron las negociaciones.
Enfrentados en batalla campal, los cruzados causaron numerosas bajas a los berberiscos, pero eventualmente hubieron de retirarse, de puro cansancio. La duración del asedio no solo era frustrante para los invasores, sino que estaba agotando sus recursos logísticos. Ante el fracaso de un último intento de asaltar la ciudad, se sentaron a negociar, un gesto bienvenido por los háfsidas, incapaces de batir a un enemigo superiormente armado.
El asedio llegó a su fin con un tratado de paz negociado por los genoveses, por el cual se acordó una tregua de diez años, Mahdía rendiría tributo a los genoveses durante quince años y cubriría los gastos en que había incurrido el Duque de Borbón. Para mediados de octubre la retirada se había completado y los cruzados estaban de vuelta en Génova