If you're lucky, you have enabled fast-switching to Assistive touch. Try triple-clicking the Home-button. If there's an option called AssistiveTouch popping up, click it and you'll find where you can put it to sleep or power off by holding the lock screen button.
If not, there isn't really any other options. You could try this tips I got at the Apple Support Disscussion:
You can squeeze (pinch) the Power Button top corner front glass to the back case while pushing the Power Button and the Power Button will usually function.
If you have jailbreaked your iPhone and by chance enabled SSH, you could connect to it and reboot it from there, following this guide.
Barring that, you could run a game or other CPU intensive application like mapping to accelerate the battery drain and get the device to power itself off.