The second battle of Cirta (winter 106-105 BC) was the final major battle of the Jugurthine War, and saw the Romans repulse a second attack on their army in four days, convincing Jugurtha's ally Bocchus to change sides.
The main recorded campaign of 106 BC saw Marius capture a Numidian fortress near the Muluccha River, close the western border of Numidia. Jugurtha had been unable to intervene in the siege, while his ally Bocchus, king of the Mauri, whose kingdom was on the far side of the river had failed to intervene. After the fall of the fortress Marius began to march back towards central Numidia, to go into winter quarters.
In an attempt to revive his cause, Jugurtha offered to give Bocchus one third of his kingdom in return for a more active participation in the war. This helped convince Bocchus actually fight, and the two monarchs launched a surprise attack on the Romans as they approached Cirta (first battle of Cirta, winter 106-105 BC). The Romans narrowly avoided defeat in this battle.
Although Jugurtha and Bocchus had suffered some casualties in the first battle, they also received some reinforcements when Bocchus's son Volux arrived with the Mauritanean infantry.
After the first battle, Marius resumed the march towards winter quarters, aiming for the Numidian coast. He marched as if he was in the presence of the enemy, with the baggage in the centre, surrounded by the fighting troops, arranged into a square. Sulla, with the cavalry, commanded on the right. Aulus Manlius, with the slingers, archers and Ligurian cohorts, commanded on the left. The military tribunes with the lightly armed infantry were at the front and rear. Marius spent his time visited every part of the army, sharing the labours of his men.
Jugurtha decided to split his army into four, and attack from all directions, in the hope that at least one of his forces would hit the Roman rear. He was to attack from the front, while Bocchus attacked from the rear. The attack took place on the fourth day after the first battle.
This time Marius's scouts gave him some warning of the upcoming attack, but as they appeared from every direction at once Marius was uncertain which direction the attack was coming from. He thus ordered his men to halt and prepare to face the attack.
The four African columns didn't attack at the same time, and we only hear about three of them. The first one hit Sulla and the Roman right. Sulla left his infantry to guard the baggage, and attacked with his cavalry, advancing in close order. He defeated the enemy on his front, and then became engaged in a cavalry pursuit. The second to be engaged was probably Jugurtha's column, which attacked the front of the Roman force, where Marius was engaged. This was the largest of the four columns, and an infantry fight must have developed on this front.
Bocchus probably attacked last (of the three columns we know anything about), hitting the Roman rear. When Jugurtha heard that Bocchus has entered the battle, he withdrew from the fight at the front with a few of his supporters, and went 'to the infantry'. Sallust doesn't actually say which infantry, but from the context it seems likely that he moved around to join Bocchus. He announced in Latin that he had just killed Marius with his own hands, showing his sword, which was covered with blood. Quite how this announcement would have been heard by the Roman soldiers in the middle of a battle is unclear, but it was meant to have discouraged the Romans on that front, and encouraged the Africans.
The Roman rear was now in some danger, but the situation was saved by Sulla, who returned from the pursuit of his defeated foes and hit Bocchus's forces in its flank (presumably the right flank). Bocchus immediately fled, leaving Jugurtha isolated. He attempted to fight on, but was soon surroiunded by the Roman cavalry and had to fight his way to safety.
Marius had now won the battle at the front, and moved back to support the troops fighting on the flanks and rear. The Africans were defeated on every flank, and suffered heavy casualties in the resulting pursuit,
After the battle Marius continued his march to Cirta. Five days after the battle envoys from Bocchus arrived at Cirta offering to enter into talks. The Romans were eventually able to convince Bocchus to betray Jugurtha, and after some tense moments he was handed over to a party led by Sulla, ending the war. Jugurtha was taken to Rome where he was killed after Marius's triumph, while Bocchus was rewarded with the western third of Numidia.