There a number of reasons that the US Civil War lasted so long. Given the massive resources of the North, it would seem that the war should have been shorter. The Confederate armies were the primary reason for the North's long war with the South. The Confederate commanders were a bit better then their Northern counterparts. Also, the South needed to primarily fight a defensive war. This advantage, as small as it may seem, caused delays in the Union's offensive efforts to end the South's rebellion. There are other reasons, however, the ones mentioned are the primary ones.