I can't tell from your post if your child is "hard-wired" to be a night owl, or if you have not been consistent with how you put her to bed. Some people try a whole smathering of ways to do it, actually adding to the problem. Without knowing which one it really is, I'm going to address the second scenario.
Amy J was pretty cute in her remark about her children being natural vampires. My immediate thought along those lines was not about wanting to stay up late so much as trying to suck up as much of us before they drop off to sleep as they can.
And suck us up they will, if we let them. My suggestion is that you keep the bedtime routine relatively short. NO TV after dinner. None. Honestly, TV riles up little children's brains. Quiet activities, like in her bedroom. If you do bath after supper, that's good. Bath, brush teeth, and in her room with you reading a book. And then into the bed. A nightlight if that's needed, and then you say goodnight and close the door. (More than a half hour of bedtime routine and your child is ruling the roost with "One more story! I want some water. I need to pee - the 3rd time in 10 minutes." Don't allow this. If they can draw out bedtime 2 hours, they will. It only exacerbates the problem.)
Wouldn't that be nice if this is all it takes? That's what we MADE happen when my kids were little. I simply wouldn't put up with anything else. How I made it work was that I would NOT allow my son to come out of his room. If he came out, I walked him back into his room. No talking, no negotiating, just back in the room.
It didn't take long. I PROVED that I could outlast him. And if he laid in the floor instead of getting in his bed? Fine. As long as he was in his room. The room was child-proofed, safe and warm enough that he would be fine if he slept on the floor. Honestly, a child will eventually choose to sleep wherever it is most comfortable.
You asked about battles. It doesn't have to be a battle. There is NO battle if you consistently walk your child back to her room and close the door. The battle starts when you decide to do something different. Like TALKING to her. Letting her tell YOU what she's going to do. Losing your cool. Letting her stay in your room. ANYTHING other than walking her back into that room and closing that door.
Letting her sleep when she crashes? BAD IDEA. She continues to try to assert her control with you. It teaches her the opposite lesson from the one you want her to learn. Children hit a wall and then they are in overdrive. That is probably what is happening to your child. She needs to learn to "let go" and let sleep occur. If you stick to the plan and not give her one single inch, then she will eventually get tired of fighting and the instances of coming out of her room will dwindle. Leaving her absolutely alone so that she understands that night time means sleep time in her room is what she needs. Letting her stay up all hours until you carry her in her room exhausted will teach her nothing, except that she can battle with you and win.
She is too little to find her balance. She needs a strict schedule and a chance to learn to self-soothe. Put her to bed at the same time each night. (My recommendation is 8:30-9:00.) And wake her up the same time every morning, no matter whether you have to get up or not. I'd recommend 6:30 am, 7:00 am at the latest. If you let her sleep late because she bounced all over the place until midnight, she will just want to bounce her bedtime all over the place. And yes, she will be sleep deprived and crabby until she accepts this, but all the more reason for her to give up the getting-out-of-bed-fight with you because you aren't allowing her to sleep later in the morning either.
I urge you to commit to this NOW, long before she goes to school. You will be miserable, she will be miserable and her teacher will be miserable if you don't.
If it turns out that your child has ADHD, then this is a brain chemistry issue, and not a behavioral one. I am making my recommendation based on this being a behavioral issue.