Analysis of information sources in references of the Wikipedia article "Battle of Culloden" in English language version.
If we mean an engagement between two armies, then the last battle on British soil was fought on 16 April 1746 at Culloden near Inverness in Scotland...Although it might be argued that it was too small to qualify as a battle, the last military engagement on British soil against members of a foreign armed force took place during the Second World War. On 27 September 1940, a German Ju 88 bomber crash-landed on Graveney Marsh in Kent. When some British troops who were billeted in a nearby pub turned up to investigate, they came under machine-gun fire from the crew. The British returned fire, and – after one German airman was shot in the foot – the crew surrendered.