Your goal is a good one.
In the e-comm space, it's generally accepted that more page loads will result in less customers at the end of the funnel. The funnel is a cruel master.
But there's a catch
Your question hints at the fact that a shorter solution must also be a good one. You can't just cram a page full of info and declare "look, there's less pages now!" The workflow has to make sense, it has to be painless. Depending on your product and the associated logistics, a one page solution might be unreasonable. But, let's assume it's not ...
The best solution is to have asynchronous loading of fields/modules within the page. Walk the customer through the same basic workflow, but as they complete a step you'll reveal the next (hidden behind a clue until the time is right).
One helpful tool for the customer in such a progressive page is a floating summary box to one side. Depending on average item count, the page can get deep and you don't want them scrolling around to check totals.
I haven't bought from their store in a while, but Apple used to do this well.
Even more shorter
Once you get all that right, you might have another opportunity waiting: the cart. Does it really need to have a page? Could it just be a drop in panel anchored in the site header? If you go that route, you give the user the convenience of checking their cart contents at any time from any page. When they're ready to checkout, just click the button and jump right into that single page!
Don't forget to close with a dedicated confirmation. Many users still want to save these or print them (despite the email confirm you'll no likely send within minutes). That's a nice opportunity to show a little customer appreciation and maybe even some social sharing.