Captain Andrew Strauss blamed England's poor batting for his side nine-wicket defeat by Australia in the Champions Trophy semi-final at Centurion.
England tumbled to 101-6 before getting up to 257, though they still lost by nine wickets after Ricky Ponting and Shane Watson both hit centuries.
"Our batsmen were to blame on a wicket where we should have been looking at scoring at least 300 runs.
"We tried to be positive but the shots did not come off," said Strauss.
England were indebted to a stand of seventh-wicket stand of 107 between Tim Bresnan (80) and Luke Wright (48) but the innings fell away after their dismissals and ended during their batting powerplay with a run-out in the 48th over.
"We were definitely keen to go out there and play our shots on a very good wicket and unfortunately it didn't come off," added Strauss.
"You live by the sword and you die by the sword.
"We have to keep playing our shots, it's refreshing to see the guys going out there and expressing themselves but we have to work on our skills to improve our percentages."
Australia, who have beaten England in seven of their last eight one-day matches, cruised to the target with 8.1 overs to spare thanks to a brutal unbeaten 134 from Watson and a faultless 111 not out from Ponting.
Strauss added: "When you lose six wickets for 100 runs it's always going to be hard to stay in the game.
"All credit to Tim Bresnan and Luke Wright for making sure we weren't completely out of the game, but we needed three or four early wickets and we didn't get them.
"Shane Watson and Ricky Ponting played magnificently well and they did a thoroughly professional job on us.
"We can take a lot from this tournament. I think we've played some good cricket, but ultimately Australia were too strong."
The defending champions now go forward to Monday's final against either Pakistan or New Zealand full of confidence.
Ponting and Watson's unbroken stand of 252 was an Australian record for any wicket in one-day cricket, while skipper Ponting became the third player in history to pass 12,000 one-day international runs as he notched up his 28th ODI century.
The 34-year-old, playing in his 323rd one-day international, followed Sachin Tendulkar and Sanath Jayasuriya in reaching the landmark.
He said: "We were pretty good and very good with the bat.
"I was confident that we could chase the England total and we stood up and got the job done.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.