Ситуация была очень сложной. У Агафокла было мало войск, мало денег. Оставленный им в Сиракузах Пасифил изменил и увел войско к Динократу. В Африке вышедшее из повиновения войско потерпело поражение. Агафокл попытался с присущей ему хитростью и изворотливостью договориться с Динократом. Он отказывался от должности стратега-автократа, от всех владений, кроме городов Фермы и Кефалоидион. Но Динократ не согласился и потребовал, чтобы Агафокл покинул Сицилию, а своих сыновей оставил заложниками. Агафокл, как всегда в трудную для него минуту, сумел договориться с карфагенянами. В 306/305 г. он заключил мир, отказался от завоеванных городов на западе острова, за что получил необходимые ему деньги – 150 талантов – и продовольствие – двести тысяч медимнов зерна. Агафоклу удалось справиться с численно превосходящим противником. Динократ вновь перешел к нему на службу, помог захватить Гелу, которую оборонял Пасифил, и убил изменника.
В ходе войны за установление своего господства на Сицилии Агафокл жестоко расправился с некогда союзной Сегестой. Город был разрушен, на его месте основан новый (Дикеополис) и заселен новыми жителями. Только Акрагант отстоял свою независимость. К 304 г. Агафокл «копьем» завоевал почти всю Сицилию, исключая области карфагенского влияния. С этого года он, по сообщению Диодора, стал называть себя царем по примеру восточных диад охов. Этот титул с 304 г. до н. э. появился на сиракузских монетах рядом с именем Агафокла.
До конца жизни он постоянно расширял территорию своего царства: в 303 г. завоевал Липарские острова, Керкиру, в 299 г. – Кротон в Южной Италии, Левкас, Гиппонион. В 300/299 году Агафокл заключил союз с тарентинцами и поставил в городе свой гарнизон для борьбы