RB Leipzig star Dominik Szoboszlai scored the only goal of the game from the penalty spot in the second half in Budapest as Hungary beat England for the first time since 1962.
Defeat on penalties to Italy in the European Championship final last year was the only time Gareth Southgate’s side had been beaten in their previous 22 games.
“We proved at Euro 2020 what we’re capable of doing against the best, and we’ve shown this again. The tough thing will be to repeat this,” Hungary captain Adam Szalai told broadcaster M4 Sport.
England’s line-up featured debuts for Leicester City full-back James Justin and West Ham United forward Jarrod Bowen, but the visitors failed to trouble the hosts, who were roared on by a 30,000 crowd largely consisting of school children.
“They are bitterly disappointed because we want to keep winning matches. If we want to be a team right at the top tier of football, we need to come here and win,” said England manager Gareth Southgate, before conceding that fatigue played a role.
“It has been a long season. The heat was a factor and took a lot out of the players.”
Hungary were forced to play the game behind closed doors due to the behaviour of fans during their home matches at Euro 2020.
However, UEFA guidelines allow children under the age of 14 to be given free tickets under such circumstances and the Hungarian Football Federation took full advantage.
The goal came in the 66th minute, with Szoboszlai beating Jordan Pickford from the spot after England substitute Reece James was adjudged to have fouled Zsolt Nagy.
Southgate’s men will next face Germany and Italy, who played out an entertaining stalemate in Bologna in Saturday’s other League A, Group 3 game.
– Ireland lose –
Roma captain Lorenzo Pellegrini gave a much-changed Italy team the lead 20 minutes from time when he turned in a superb cross from teenage debutant Wilfried Gnonto.
Gnonto, 18, had just been sent on after impressing in FC Zurich’s run to this season’s Swiss Super League title.
However, Germany needed just three minutes to draw level as the home defence failed to clear Jonas Hofmann’s ball into the middle and Joshua Kimmich fired in.
Germany play England in Munich on Tuesday while European champions Italy — looking to move on following their failure to qualify for the World Cup — host Hungary before travelling to face Southgate’s side in Wolverhampton next weekend.
Elsewhere the Republic of Ireland slumped to a first defeat in nine games as they suffered a surprise 1-0 loss away in Armenia.
Eduard Spertsyan scored the only goal in the second half in Yerevan in the League B, Group 1 opener.
Armenia now travel to play Scotland on Wednesday while Ireland host Ukraine the same night before facing Scotland in Dublin next weekend.
There were also Nations League wins on Saturday for Montenegro, Luxembourg and Turkey while Finland were held 1-1 at home by Bosnia and Herzegovina after taking the lead through a Teemu Pukki penalty.
The winners of each of the four groups in League A will go through to the final stages in June next year with promotion and relegation between the other leagues and the chance to earn places in Euro 2024 qualifying play-offs for teams who fail to qualify via the usual route.