AI stupidity. You cant do it fair, and terrain advantages are overrated, so its not like you're going to be defending very well from a guy with 5x your army. Evidently using attrition via scorch land works, but I never use that either. Good generals are very important, mostly for the maneuver stat, and then the shock.
If I'm fighting an uphill battle, the first thing I do is gather into one or two megastacks. Not so much that its like 15% attrition and it burns through WE like crazy, but still big-ass stacks. Wait for his big armies to split up (they will), kill one, kill the other, etc. Over and over. I win my wars by killing half a hundred regiments without losing one, and then allowing his WE to max out so high that he can't make troops at any decent speed. Just steamroll his provinces then.
Also, I usually don't siege while my opponent has troops. Assaulting is so amazingly overpowered in the early game and the AI rarely ever take advantage of you dropping all your morale into their forts.
Stuff like this will let you do silly stuff like punch Bohemia in the face as Brandenburg. If you have good troops, you can do this.
Also, before I forget, military access. Very important to remember you can do this. Going to lose a battle and don't want to lose all your troops? Simply pause the game and get military access from a country owning a neighboring province to the battle and retreat there. AI won't try to get access. This doesn't work with the emperor in the HRE, of course.