The Carthaginians march along the Sicilian coast to Himera, with the fleet sailing alongside.
Situated on the western bank of the River Himera, the city sits atop a hill (three hundred to four hundred feet high) that is steep in the northern, western, and eastern sides but gradually slopes to the south.
There are hills to the west and south of the city.
The Carthaginians erect two camps, joined by siege works: the Sea camp is set to the north of Himera by the sea, surrounded by a palisade and a ditch.
The army is billeted in a separate camp to the south on a low hill west of Himera.
Theron is already present in Himera with his army, but the Greeks do not interfere with Carthaginian operations.
The Greek allies of Hamilcar (Greeks of Selinus and Anaxilas of Rhegion) are absent—and never join the battle.
It is not known if Hamilcar wished to build siege weapons at Himera or settle the issue through battle.
After the camps are erected, the Punic ships drop off provisions at the sea camp and are sent to Sardinia and Africa for more supplies.
Twenty triremes patrols the sea, the rest of the ships are beached in the sea camp.
Himera is not fully invested—the east and south sides were open.
Hamilcar leads a picked body of men on reconnaissance mission, and defeats the Greeks in a pitched battle outside Himera.
The Greeks block the west gates of Himera and their morale also falls, while the Carthaginian foragers range the territory of Himera.
Theron sends messages to Gelo, who arrives with his army and encamps across the river.
Gelon's cavalry manages to capture many of the foragers, as Hamilcar has no cavalry present to counter his moves.
The morale in Himera improves, and the bricked-up gates are cleared on Gelo's orders.
The different versions of the battle given by Herodotus and Diodorus Siculus are hard to reconcile; Diodorus provides a more detailed account.
Herodotus noted that Sicilian tradition held that this battle and the battle of Salamis were fought on the same day.
The Greek and Punic armies fight from dawn on through the day, while Hamilcar watches the battle from his camp and offers sacrifices to Baal in a huge fire.
Sometime after the battle is joined, disguised Greek horsemen kill Hamilcar while he is preparing the sacrifice, and then set fire to the beached ships, causing great confusion at the sea camp.
However, it is not known what further role the Greek cavalry played in the battle.
The Carthaginians rush to launch whatever ships they can save and some of the ships, overcrowded with soldiers, leave the site altogether.
When the news of Hamilcar's death and the burning of ships reaches the fighting armies, the Greeks press harder and rout the Carthaginians, who flee to their camp.
Gelo's army storms the Carthaginian camp and the Greeks scatter to loot the tents.
The Iberians of the Carthaginian army reform, then attack the now disordered Greeks, inflicting severe casualties.
The Greeks fight back, but they are hard pressed and the Iberians get the upper hand in the struggle.
At this critical juncture, Theron decides to join the battle.
He directs his attack on the flank and rear of the Iberian position inside the camp and also sets fire to tents near them.
The Iberians finally give way, and retreat to the ships still afloat.
Other Carthaginian survivors leave the camp and retreat to a hill inland, where they attempt to defend themselves.
The hill is waterless and they are ultimately forced to surrender.
About half of the Carthaginian army and majority of the fleet is destroyed, with numerous prisoners and rich booty falling into Greek hands.
Diodorus commented that the surviving Carthaginian ships were sunk in a storm on their return journey to Africa.
Ten thousand mass graves from the era show over two hundred thousand Greek dead, buried ten to fifteen per grave on the site).
The army had no siege engines and the Etruscans and the Elymians, allies in past struggles against Greeks, were not part of it.