Estimates of the forces available to each side vary, but the eight roman legions had a strength in the neighborhood of 35,000 to 40,000 foot, with associated archers and cavalry. A conservative estimate of the Belgic forces gives them 80,000 men, though they may have had up to 120,000, almost entirely infantry and hidden in the woods. The few Belgic horse were in the open land between the trees and the river bank. The Roman forces were somewhat scattered and occupied with foraging for materials and constructing a marching camp. At the start of the battle, they arrayed themselves roughly in a line of six legions, with two more legions guarding the baggage train about two miles in the rear.
As the Roman baggage train came into view, the Belgic forces rushed out of the trees and completely surprised their opponents, overwhelming the Roman skirmishers and quickly crossing the river (then 3 feet deep). Caesar's men quickly prepared for battle, but many did not even have time to put on their helmets or grab their shields.
The four legions on the Roman left flank quickly became locked with the onrushing Belgae on the north bank of the river. The 9th and 10th legions, on the extreme left, engaged the Atrebates and drove them across the river, slaughtering them as they fled. The 8th and 11th legions in the Roman center made slower, but steady, progress against the Viromandui. As these four legions pushed their opponents back, a gap formed in the Roman line. The Nervii rushed through the opening, seizing the Roman camp and attempting to outflank, from the inside of the line, the two legions of the Roman right, the 7th and 12th. Vastly outnumbered, the Romans could only hold their position.
After overcoming the Atrebates and seizing the Belgic camp on the south bank, the 10th legion was sent back across the river to retake the Roman camp, possibly with assistance from the 13th and 14th legions, which had been guarding the baggage train and were now rushing to join their comrades. The arrival of reinforcements and the demoralizing loss of the Belgic camp allowed the Romans to drive the Nervii off, and they and the remainder of the Atrebates and Viromandui fled. The Aduatuci never arrived in time to take part in the battle.
Source: Caesar, C. Julius. The Gallic War. Trans. Carolyn Hammond. New York: Oxford University Press, 1996.