ahh it seems you have major flaws in your game
with some luck the demons can spawn imps(if your lucky)
but other than that it's also quite easy if u got a demoness
kill the fire dragons first nm the cost and keep the snake alive
then kill all except he snake
make sure 1 unit is at the end of the battle map
when snake comes close u switch places with that unit
and keep looping it untill u get enough mana to resu all your troops

it's easy as that ^^
and for the dragon
he ussualy flies to 1 spot
(assuming your first)(i mean u do got onslaught right)?
then place a trap on that spot
so the fire dragon won't shoot al all
and u can trash him with a poison skull and bash him later with rest of units
for that battle i would switch the cyclopses for royal snakes(they are level 3 and resurrectable
just make sure your giants and cannoneers stay alive
gg's