Oh you poor thing. I know how frustrating it is when they're clearly knackered but just won't go to bed.
With DD1, we used to have two stories and then a "sleepy story". During the first two, DD1 could sit beside whoever was reading or on their lap. For the Sleepy Story (ideally something that rhymes and which ends with characters going to bed or saying goodnight) she would have to be in bed, lying down, with the covers pulled up. Otherwise she didn't get the story.
I've just started a similar routine with DD2 (18m) as she's just moved from a cot to a bed. Seems to be working so far (2 weeks and counting...)
We use story CDs too, or music. Not typical lullabies, DH made a compilation with all sorts of songs on it - everything from the Doors to Dido - but DD1 loves it. Haven't tried it with DD2 yet.
But of course even with all that (which at least got DD into the right place, ie bed!), we did, like you, go through a period where she refused to settle and kept getting out of bed. I used the old bore-them-into-submission trick, so every time she got up, I put her back, as calmly as I could, and said "Bed time. Good night".
For a few nights it took hours (or it certainly felt like it!) but I kept telling myself "I have more patience than you. I can do this for longer. You are tired and I am, well, not quite so tired. I will not be beaten by a three year old". After a few nights, it got easier and I only had to put her back two or three times and then, quite suddenly, she got the message and stopped.
I really hope that helps. I remember how awful it was when she just wouldn't settle and I'm praying that DD2 will be easier. Given that she seems quite keen on sleep (slept in till 10am a couple of times over Christmas - alas, unlike her sister!) I'm cautiously optimistic... 