Heres a tactic I tried very recently which worked quite nicely. Not tried it enough to call it fool-proof, and its probably only suitable for certain situations, but I thought Id put it out there! (Apologies if it's not original in any way)
I was defending one of my better border cities while at war, and spotted an AI stack on its way. Not a particularly menacing one, but one that needed to be destroyed.
I had a couple of hills just outside the city boundary and one plain in between them. So I moved the weakest city unit (some geriatric archer) onto the flat land when the AI was two squares from the city. The AI attacked, as I hoped, my bait and then moved the rest of his stack on to that square rather than the +25% defence squares either side. Made my stack-attack a little easier!
I was defending one of my better border cities while at war, and spotted an AI stack on its way. Not a particularly menacing one, but one that needed to be destroyed.
I had a couple of hills just outside the city boundary and one plain in between them. So I moved the weakest city unit (some geriatric archer) onto the flat land when the AI was two squares from the city. The AI attacked, as I hoped, my bait and then moved the rest of his stack on to that square rather than the +25% defence squares either side. Made my stack-attack a little easier!