The key is ranged units. You should be hitting a city with ranged attacks to whittle it down to size and using a melee unit for the final blow. I generally find that 4-5 ranged units and 1-2 melee units is enough to take out the AI. Stay 3 tiles away from the city until you take out the enemy units. Move all ranged units into position to fire on the same turn. 2-3 turns later your melee unit should be able to take the city.