To win a war, you must strike quickly and ferociously.
Gather your troops on the borders, and then declare war. Try and take over the city you are targeting within one turn or two. Then, they will fear you because of your swift destruction and will likely make peace with you, allowing you to do the same trick again some turns later.
If you select a group of soldiers and hover over an enemy group, you can see what your chances of winning are. Chances of winning can change very very quickly. If your unit is less advanced, he will be much more likely to lose. If the enemy unit has a bonus versus your unit (e.g cavalry versus siege engines) then you will also have a smaller chance of winning. If his level is higher, his chances of winning will also be better.
To win you must be more technologically advance, attack with the appropriate unit, not reattack with damaged units, and sometimes you will just need to sacrifice many units to take a city because of all the defensive bonuses defending archers get.