Gareth Southgate’s side now face hosts Russia or Croatia on Wednesday in Moscow’s Luzhniki Stadium for a place in next Sunday’s final.
And Alli was unmarked to turn home Jesse Lingard’s cross against a lacklustre Sweden in Samara.
England keeper Jordan Pickford pulled off three fantastic saves to keep Sweden out – first turning away a Marcus Berg header, then producing a low stop from Viktor Claesson and finally tipping Berg’s shot over the bar.
England will discover their semi-final opponents later, with Russia and Croatia kicking off at 19:00 BST.
The Three Lions are in the last four for only the third time. They went on to win their home tournament in 1966 but lost to West Germany on penalties in 1990.
But the peculiar way this World Cup has shaped up means they will now play the team ranked 20th or 70th in the world for a place in the final – against either Belgium or France.