From the onset of war, the Union had the most obvious advantages, being resources, manpower, food, and industry, meaning that the could not only have a large army, but that they could feed and equip it as well. However, often not as well noted are the Confederates numerous other advantages to their favor.
First of all, the Confederate only needed to defend their own land. This meant many things, such as that they were familiar with the area that they were protecting, which allowed them to use it more strategically, while supply lines and railroads were shorter which were used for deployment of equipment and troops. At the time the new long range firearms made 'offence-defence' strategy even more possible. The sheer size of the South also meant that the Union would have to spread out its army to occupy all of the land.
Apart from this, since the Southern troops were defending their land, ideals, homes, families, and their way of life, they would much less likely give up the battle, whereas the North who were invading never really understood what they were fighting for and therefore lacked the same spirit.
This meant that the Southern morale was much better, and with each victory, as small as it was boosted it even higher. This also caused many Northern troops to desert. The Generals will to fight was also much greater, as they too were defending their own homes. An example of this is how E. Lee was so determined to defend Richmond, and 'never let it fall'. Southern morale didn't only affect the soldiers in battle, however, as civilians in the South were very much involved in the war effort, whereas in the North they merely continued on with their own lives.
Another advantage for the South was that...