England became the ninth team to book a place at next year's European Championship after beating Italy 3-1 at Wembley Stadium, two years on from losing the final to the Italians at the same venue.
Denmark and Hungary also could have qualified on Tuesday but both must wait until the next qualifying games in November. And tiny San Marino briefly looked on track for a historic draw in its narrow loss to the Danes.
Italy took the lead with a goal for Gianluca Scamacca his first for his country but England turned the game around with two goals from captain Harry Kane and one from Marcus Rashford.
England joins host nation Germany and previously qualified Austria, Belgium, France, Portugal, Scotland, Spain and Turkey at next year's 24-team tournament.
Defeat to England deepened the gloom around the Italian team amid a scandal around players' alleged involvement in an illegal betting ring. Premier League midfielders Sandro Tonali and Nicolò Zaniolo left the Italy camp last week after being questioned by police.
Italy's game with Ukraine on Nov. 20 will decide which team gets the second qualifying spot in Group C along with England. Italy is seeking to avoid missing a second tournament in a row after failing to qualify for the World Cup last year. The decider is officially a home game for Ukraine but will take place in Germany because of the Russian invasion of Ukraine.
The Ukrainians had to recover from a goal down to beat Malta 3-1. The win was sealed when Chelsea winger Mykhailo Mudryk scored a powerful long-range shot for his first international goal.
Denmark could have secured qualification Tuesday but needed other results to go its way. A 2-1 win for Kazakhstan against Finland earlier ensured Denmark would have to wait until next month's games. Group leader Slovenia won 1-0 against Northern Ireland.
Kazakhstan is trying to qualify for its first-ever European Championship and upset Finland with two late goals from Baktiyor Zainutdinov including an 89th-minute winner. Kazakhstan must win its last two games against San Marino and Slovenia next month to have any chance.
Hungary needed a win over Lithuania to qualify but instead drew 2-2 after recovering from being 2-0 down at halftime. Serbia is second in Group G and edged closer to qualifying by beating Montenegro 3-1.