迦太基人和马其顿人隔着一条小河,在河谷尽头的高地扎营,河边泥土十分松软,地势十分有利,马其顿人只能排成狭长的队伍靠近攻击。克雷托斯的部队渡河进攻,取得了一些进展,经过一番苦战后将迦太基人逼回了高地。这里易守难攻,在人数差不多的情况下,疲惫的马其顿人从山下向山上发起进攻的成功概率微乎其微。席罗派弓箭手向下射击,耐心等候其撤退,因为他知道马其顿人在没有弓箭手的帮助下不能在原地停留太久,一定会撤退。在与敌军距离很近时撤退既危险,难度又高,对此时的克雷托斯来说更是如此,因为河上可以淌水而过的浅水区域比较窄。当马其顿人背向迦太基人渡河到一半的时候,席罗下令进攻,杀死了不少迅速陷人慌乱的希腊士兵。
这时德米特里召集了马其顿骑兵,直接趟过小河,带他们发起了有序的冲锋。他的人马只冲到了足以逼退敌人的地方且在迦太基弓箭手的射程外后,便没再继续追击,而是重整了散乱的队伍。德米特里阻断了迦太基人的追击,为希腊重步兵赢得了足够的时间跑到河对岸。之后在敌人猛烈的投射武器攻击下,他们骑马疾驰回到了河对岸。
见一时半会拿不下来,德米特里在河边建造了军营,还挖了一道战壕,并建了一道围墙封锁河谷,断绝了迦太基人的补给。然后派人到迦太基城下索要补给。与敌人对峙了15天,迦太基人终于扛不住了,最先闹腾起来的是努米底亚人,一下子跑了好几百人。不得已之下席罗只得下令突围。他让士兵们砍伐了树木当做了很多木板和简易的攻城锤,分两队人马先后从东西两侧出击,木板不断地被搭在了围墙上,士兵上去之后再打起了下去的路,还有些士兵则砸起了栅栏,因为想要全部跑出去,需要足够的宽度。
“将军,迦太基人在东边准备破墙突围,您快派兵支援吧。”一个岗哨向在睡梦中的德米特里禀报道。
德米特里立即召集了所有将领,说道:“迦太基人恐怕不太可能从一处突围,塞拉克西斯,你去东边堵截,格雷塔斯,你把弓箭手投石兵分成两组,一组支援塞拉克西斯,一组待命。克雷托斯,步兵全部整装待发。”
小半个时辰后,席罗向西边发起了突围,德米特里让克雷托斯和远程兵立刻冲过去抵挡,自己带着骑兵伺机而动。
西边的进攻明显比东边更猛烈,不过克雷托斯的希腊重步兵防御起来比那些色雷斯人更厉害,又过了一会,德米特里让克雷托斯慢慢后撤,把人放出来。很快一部分迦太基步兵打开了缺口,瞬间努比底亚骑兵涌现而出,他们冲出后不断向希腊重步兵投掷起了标枪。这时候德米特里率领骑兵冲杀而去,努比底亚骑兵瞬间崩溃四散而逃。德米特里乘势斩杀了一些时候又回头冲击剩下的步兵,努比底亚骑手一旦逃跑根本是追不上的。席罗看着被屠宰的迦太基士兵,又看到马其顿的骑兵数量众多又异常精锐,除了那些努比底亚人,就算有步兵从这跑了出去,但在这茫茫荒原之中在数千骑兵的追击下也根本逃不走,最后只有全军覆没的下场,无奈之下便投降了。
亚历山大得到消息后非常高兴,送给了席罗一匹汗血马、一套精美的铠甲以及30塔兰特的白银以示嘉奖。当投降的迦太基人出现在迦太基城下之后,迦太基人在城墙上破口大骂,亚历山大没想到不仅没有看到对方泄气的样子,反而是一副众志成城的样子,不禁对迦太基人坚强的意志感到钦佩。他知道,总攻的时机还没有到,而之所以没有把席罗拉过去是因为一旦这样做,作为将领投降,迦太基人是不会原谅他的,哪怕元老院不发话,他的家人都会被愤怒的民众全部拖到广场上被施虐而死。
迦太基人见情势不妙,于是又开始作妖,不仅派遣了特使前往努米底亚人部落求援(努米底亚人包括努米底亚西部的马萨斯里人和东部的马斯里人),还派人去埃及,打算让托勒密进攻马其顿,使其首尾不能相顾,最后还派人前往达契亚打算与卡山德结盟。
卡山德逃到达契亚之后,靠着他那吹牛不打草稿的口才得以在当地立足,成了当地一个部落的贵客,并迎娶了其女儿。当卡山德得知亚历山大和他的军队都耗在迦太基几个月之后,心中的野心和恨意再次涌起,部落首领并不赞成其出兵,于是某一日夜晚,他派人装成其他部落的刺客刺杀了部落酋长和他的继承人,最后他出手击杀了刺客。于是,他登上了部落首领的位置。
他再次用计派了一群人逃到南边的一个部落里冒充原部落首领的亲信,告诉对方卡山德谋杀了首领,并希望得到对方的帮助,结果这个首领心里一喜,带人偷袭卡山德,结果毫无意外地丢了性命,就这样,卡山德一下子拥有了两个部落,召集了人,并从达契亚以北的斯拉夫人处借了3000斯拉夫斧兵,然后偷偷南下准备奇袭马其顿。
在长期的围城战中,亚历山大发现了迦太基北面的城防的一处薄弱环节,这里地形险峻,形成了天然的防御,以至于迦太基人觉得不需要额外添加防御工事。亚历山德派兵在这里登陆,试图爬上去,引得迦太基守军从附近的一座城门冲了出来,与其交战。在随后的交锋中,马其顿士兵击退了迦太基人,一路追进了城门。
亚历山德受这场意外之胜的鼓舞,急忙召集了手下所有人攻进去,其中甚至包括武装薄弱的船员。这些人当中只有500人是全副武装的士兵,其余的3000人都不是。迦太基城的一隅现在落到了马其顿人的手里,但是他们的控制并不稳固,因为迦太基的北部城区都是广袤的田地,南部是城区,南北部中间的位置还有一道马戈尼德王朝时期建立的城墙。所以无论是马其顿还是迦太基在北面的兵力都是非常少的。亚历山德孤立无援,附近没有马其顿的大部队,亚历山大求援。
正好此时奉命带着一些迦太基俘虏运输物资的海格力斯到达北面碰到了亚历山德,为了让敌人陷入恐慌,海格力斯放弃了奇袭的机会,他立刻将这些俘虏赶回城内,为迦太基人带去马其顿人善待俘虏和一些于民有利的政策信息。迦太基人的大部队很快赶过来,兵力不济的马其顿人只得退到了城外,不过海格力斯觉得有了这些俘虏进去宣传马其顿的好,后面应该是会有些作用的,至少他从来没有虐待过这些俘虏,而且每顿都不会少了他们的。马其顿人的仁慈是传到了迦太基,但他还是小看了迦太基的韧性,海格力斯的仁义之举只能在战争结束后产生作用了。