第一次白チュニスの戦いは紀元前310年に発生した、カルタゴとシュラクサイの僭主アガトクレスの間の戦いで、アガトクレスが実施したリビュア遠征における最初の大規模戦闘だった。カルタゴ軍は数的には圧倒的に優っていたが、アガトクレスの兵はカルタゴ軍の市民兵より戦闘経験が豊富であった。他の要因は地形にあった。狭隘な地形のため、カルタゴ軍は数的優位を利用しての側面攻撃を実施することができなかった。カルタゴ軍はこの深刻な敗北に苦しみ、カルタゴ同盟都市のいくつかはアガトクレスに寝返った。

序幕 
アガトクレスは、シュラクサイでの権力を手に入れるとカルタゴ相手に戦争を始めたが、その初期段階である紀元前311年、シュラクサイはヒメラ川の戦いで大敗北し、アガトクレスはシュラクサイ以外のシケリアに対する支配権を失ってしまった。シュラクサイ自身も同年にカルタゴに包囲された（第三次シュラクサイ包囲戦）。この苦境を打開するため、アガトクレスはシュラクサイを包囲するカルタゴ軍と戦うのではなく、カルタゴ軍が予期していない、しかしリスクの高い戦略をとった。すなわち、カルタゴ本土があるリビュアを攻撃することとした。この攻撃に対処するため、カルタゴはシュラクサイから軍を動かさざるを得なくなり、またリビュアのカルタゴ同盟都市の反乱を引き起こさせ、さらにカルタゴ周辺の肥沃な土地を略奪することが可能となる。さらに兵力は減少したとはいえ、経験豊富な彼の軍隊は経験不足のリビュアのカルタゴ軍に対して優位であると計算した。

紀元前310年8月、アガトクレスは60隻の三段櫂船と共に、カルタゴ海軍の封鎖を突破してシュラクサイからの脱出に成功した。シュラクサイ軍は追撃するカルタゴ艦隊との海戦をなんとか避け、現在のボン岬半島近くのラトミアエに上陸することができた。上陸後、アガトクレスは退路を自ら断つために、船を焼却した。これにより、船を防衛するための兵も不要となり、カルタゴ軍に鹵獲されることもなくなった。

肥沃な農村部を略奪した後、シュラクサイ軍はカルタゴ側の都市であるメガロポリスを直接攻撃した。街は城壁で守られてはいたものの、住民は攻撃を予測しておらず、また戦闘の経験も無かった。短時間の抵抗を受けたものの、シュラクサイ軍は街を略奪して破壊した。その直後に、アガトクレスは白チュニスを徹底的に破壊して街の外に野営した。メガロポリスは現在のソリマン（en）、白チュニスは現在のチュニスと推定されているが確実ではない。

アガトクレスの上陸を知ると、カルタゴ市民の間にはパニックが広がった。シュラクサイのカルタゴ陸海軍が殲滅されない限り、アガトクレスがシュラクサイを離れることは無いと考えたためである。その後アガトクレスが封鎖を突破して脱出したとの報告が届いたことで、ようやくパニックは沈静化した。アガトクレス打倒のため、カルタゴ元老院は政敵関係にあるハンノとボミルカルを軍の司令官に任命した。ディオドロスによると、ボミルカルはこの機会を利用して政敵を排除し、カルタゴでの権力を握ることを望んでいた。

戦闘 
ディオドロスによると、ハンノとボミルカルはアガトクレスを早急に攻撃するために、周辺地域や同盟都市からの兵が集結するのを待たなかった。このため、カルタゴ市民で構成された歩兵40,000、騎兵1,000、戦車2,000からなる軍が編成された。ディオドロスが示す戦車の数は過大であると思われる。ユニアヌス・ユスティヌスは軍の総数を30,000とし、司令官としてはハンノのみを記載している。カルタゴ軍は白チュニス近くのアガトクレスの野営地に近づき、戦闘隊形をとった。ハンノが右翼軍を率い、神聖隊を彼の横に配置した。ボミルカルが左翼軍を率いたが、狭隘な地形のためにファランクスを左右に十分に伸展できず、代わりに縦陣が深くなった。騎兵と戦車は歩兵の前方に配置された。

アガトクレスは息子のアルカガトスを歩兵2,500と共に右翼に配置し、またシュラクサイ兵3,500、合計3,000のサムニウム兵、エトルリア兵およびケルト兵を中央に配置した。カルタゴ軍神聖隊と戦うために、左翼には重装歩兵1,000が配置され、アガトクレス自身がその先頭で指揮した。兵士の士気を高めるために、アテネ神に捧げるフクロウを自軍の戦列に向けて放った。

まずはカルタゴ軍の戦車部隊が、続いて騎兵がシュラクサイ軍に突撃したが、この最初の攻撃は効果が少なかった。損害を受けた戦車・騎兵はカルタゴ軍の後方に退いた。続いてカルタゴ軍歩兵部隊が戦闘に加わった。ハンノと神聖隊は猛攻撃をかけ、シュラクサイ軍に多くの損害を与えた。しかしハンノ自身も傷を受け、戦死した。ハンノの周りにいたカルタゴ兵はその戦死にショックを受け、逆にシュラクサイ軍は勢いづいてカルタゴ軍を圧迫した。これを知ったボミルカルは、高地への撤退を命令した。ディオドロスによると、カルタゴ市民兵の敗北により、ボミルカルは自身が権力を握れることを期待した。しかし、この撤退命令は秩序だった撤退ではなく敗走をもたらした。神聖隊は抵抗を続けていたが、シュラクサイ軍に包囲されそうになったために戦場から脱出した。アガトクレスはしばらくはカルタゴ軍を追撃したが、やがて反転して野営地を略奪した。

ディオドロスはシュラクサイ軍の損害を200、カルタゴ軍の損害を1,000としているが、カルタゴ軍の戦死者を6,000とする記録もある。ユスティヌスはシュラクサイ軍の戦死2,000、カルタゴ軍3,000としている。最近の推定では、シュラクサイ軍の損害500、カルタゴ軍3,000となっている。

その後 

アガトクレスの兵は少数であり、カルタゴを包囲することはできなかった。このため、街の前面に野営して周辺を略奪した。カルタゴの住民はこの敗戦は神の怒りに触れたためであり、それを鎮めるためには生贄が必要と考えた。彼らは金銭と他の高価な品物をメルカルト神（en）への捧げものとし、母都市であるティルスに送った。バアル神に対しては、200人の子供を生贄として捧げ、他にも300人が火のついた穴に投げ込まれた。この生贄の儀式はディオドロスが記載しているが、ディオドロスは断固としたシケリアの愛国者であり、従って疑問の余地がある。

カルタゴ周辺の幾つかの都市は、アガトクレスへの恐怖またはカルタゴを憎んでいたため、アガトクレスに加担した。アガトクレスは白チュニスの野営地に防御設備を築き、適当な守備兵を残して、海岸沿いの都市を服従させていった。まずはネオポリスを急襲したが、略奪は行わなかった。ハドルメトゥム（en）を包囲した直後、リビュア人の王アエリマスがアガトクレスと同盟を結んだ。カルタゴはアガトクレスの不在を狙って白チュニスを攻撃し、野営地を占領して街を包囲した。これを聞いたアガトクレスは、少数の兵力をもって白チュニスとハドルメトゥム双方から視認できる山岳部へ移動した。そこで兵士たちに夜間に大量の焚き火をたかせ、大軍が駐屯しているように偽装した。これを見たカルタゴ軍は、アガトクレスが大軍と共に接近してくると考え、包囲を解いて撤退した。ハドルメトゥムはアガトクレスが多数の援軍を得たと考え、アガトクレスに降伏した。続いてタプススを攻略し、リビュアにおける勢力を軍事力あるいは説得を用いて拡大していった。カルタゴ近隣の全ての都市――合計では200以上に達した――を支配した後、アガトクレスはリビュアの内陸部に向かった。

アガトクレスは白チュニスで再び小規模な戦闘を行った。カルタゴはシュラクサイを包囲していた兵士の内5,000を帰国させ、兵力を増強した。アガトクレスが内陸部に向かった数日後、増強された兵力を以て白チュニスを包囲した。さらにリビュアの同盟都市の兵も加わったが、その中にはアガトクレスを裏切ったアエリマスも含まれていた。この報告を受けたアガトクレスは転進し、夜中に行軍して包囲中のカルタゴ軍を奇襲した。そこでアエリマスも含む敵兵2,000を殺し、いくらかの捕虜を得た。その後リビュア内陸部に対する遠征を再開したが、紀元前309年には第二次白チュニスの戦いが発生する。