I think there are 2 possible stratagies that might produce some results. If you're dealing with an AI opponent than it's a great idea to go on the offensive. Choose mobile units and hunt down one of the enemies, go for a quick rout by turning the flanks and cavalry charges to the rear. Usually the second opponent will not chase you down while you're engaged with it's allied force and it will hunker down in a corner and wait for you to finish up (AI might change if you get in trouble, can't say). Tougher to control, but these are more fun to play.

Another tactic, find a map edge with the highest elevation, put your back up against it and bury as many archers as you can behind a semi circular shield wall (with the map edge to your back you can't be flanked). I like having 2 high valour catapaults as well as I target the general's unit and sometimes get a lucky shot off. For a little finesse, keep 2 units of sword/polearm/axe infantry and a loose unit of cav (missle or melee). Use missle cav to peel and target a juicey unit like militia or even archers if you have an elevation advantage. This usually forces the AI to peel off 1-3 units to chase your highly mobile missle units and these are forces that your main strong point doesn't have to face, AND sometimes, IF you get close enough to the main force (suffering less than 20% caualties or YOU might rout), the AI registers that their flank is threatened and their morale dips, they rout. Melee cav should feign charges into the rear of enemies pinned on your shield wall or if the enemy leaves their missle troops unprotected, butcher them, THEN charge the enemies rear. Having no vulnerable flank means your shiled wall SHOULD hold if it's deep enough. Leaving gaps in the shield wall for your sword/polearm/axe units to slip through helps as depending on the enemy unit type in that spot, if they eat through it fast enough, you will effectively flank them.

Hope it's usefull.