They both mean men of war, but there is a slight difference in meanings.
A soldier seems to imply someone who is in the army, and has been trained by some militia.
A warrior seems to imply a more barbaric figure, or at least, someone who fights, but isn't necessarily part of a state army, but are fighting for personal reasons.
The next difference implied is a soldier has discipline, butand works together with other soldiers as a warrior doesn'tteam to form an army. They march, move, and stop at the same time. Warriors don't do this, and although many warriors might fight in the same army, the term "warrior" implies that there is no discipline, and that they just move of their own accord.