If you're lucky, you have enabled fast-switching to Assistive touch. Try triple-clicking the Home-button. If there's an option called Assistive Touch 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 option. You could try these tips I got at 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 jailbroken 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.