His moving speech to Parliament came on the day the last allied soldier arrived home from France at the end of a 10-day operation to bring back hundreds of thousands of retreating allied troops trapped by the German Army.
Many French troops remained to hold the perimeter and were captured.
Major-General Harold Alexander inspected the shores of Dunkirk from a motorboat this morning to make sure no-one was left behind before boarding the last ship back to Britain.
The beach and sea were in chaos. There were bodies floating in the water and we were under constant attack from machine-gun fire, bombing, explosions sending shrapnel in every direction.
Battle-weary and hungry soldiers from the retreating British Expeditionary Force (BEF) as well as French and Belgian troops had spent many days waiting to board ships from the one remaining pier, the east mole.
Many thousands were taken straight off the beaches, struggling in shallow waters to board small vessels that transferred them to the waiting ships.
When those who survived the evacuation arrived exhausted in England they were welcomed as returning heroes and offered plenty of tea and sandwiches as they boarded special trains.
Commander-in-chief of the BEF, Lord Gort, arrived back in England on 1 June and was also feted as a hero.
When his force was almost swallowed up by the Germans - after the French were driven south from Sedan and the Belgians surrendered - he took the vital decision to withdraw to Dunkirk where, according to the Times newspaper, four-fifths of his men were rescued.
This afternoon Mr Churchill admitted to the House that when Operation Dynamo was launched on 26 May to rescue allied forces cornered by the advancing Germany Army, he expected about 20,000 or 30,000 would be saved.
But thanks to the valour of the Royal Navy and Royal Air Force, no less than 338,000 British and French troops were rescued and brought back across the Channel to fight another day.
Mr Churchill tempered his admiration for the success of Operation Dynamo with these words: "Wars are not won by evacuations".
He said there was no doubt in his mind that the last few weeks had been a "colossal military disaster".
The BEF had to leave behind all its heavy armour and equipment.
The French army was weakened, the Belgian army had surrendered, Channel ports, valuable mines and factories in France and Belgium had been taken over by the enemy.
He said the nation should brace itself for another blow. "We are told that Herr Hitler has a plan for invading the British Isles," he said.
Returning troops were vital if Britain were to resist such an invasion.
He ended his speech with a defiant message to Hitler's armies.
"We shall defend our island whatever the cost may be. We shall fight on the beaches, we shall fight on the landing grounds, we shall fight in the fields and in the streets, we shall fight in the hills. We shall never surrender."
Britain would "ride out the tyranny of war, if necessary for years, if necessary alone."
Mr Churchill paid special tribute to the Royal Air Force that had provided what protection it could for the ships and stranded soldiers .
The Royal Navy sent 220 light war ships and 650 other vessels under a hail of bombs and artillery fire.
I DOWNLOADED THIS FROM BBC.
Can u remember the story of the SnowGoose. Oh golly that did bring a tear.