La ciudad había sido ocupada por las tropas españolas en 1539, entregándola a sus aliados hafsidas.
Sin embargo, el usurpador también reconoció su soberanía, por lo que nada cambió respecto a la relación con España.
La flota española partió para Mahdía el 24 de junio y llegó cuatro días después.
Por ello se pidieron refuerzos a Italia, y mientras llegaban el asedio languideció, siendo los españoles hostigados por constantes salidas de la guarnición.
Allí preparó una emboscada, oculto en un olivar, para aniquilar a las fuerzas españolas encargadas de recoger agua en las fuentes cercanas.
Sus bajas fueron numerosas, y entre ellas se contó a Luis Pérez de Vargas.
Carlos V ofreció la plaza a los caballeros de Malta, pero estos rechazaron la oferta, al resultar demasiado gravoso mantenerla.
El sultán Solimán, considerando rota la Tregua de Adrianópolis, reemprendió la guerra total contra los cristianos.