Harry Kane converted a fifth-minute penalty in Prague after Raheem Sterling was clipped by Lukas Masopust, the Tottenham striker taking his qualifying tally to seven goals.
But Czech Republic, humbled 5-0 by England in the reverse fixture last March, levelled shortly after as Jakub Brabec bundled in from a corner for his first international goal.
Substitute Zdenek Ondrasek swept home the winner on his debut for the hosts on 85 minutes, a goal that ended England’s decade-long unbeaten run in qualifying spanning 43 matches.
“I think we have had a lot of credit over the last couple of years and tonight we did not do enough,” England manager Gareth Southgate told ITV.
“Our performance was not good enough, it’s as simple as that. The goals we conceded were typical of the chances we gave away.”
England’s last qualifying defeat came ahead of the 2010 World Cup when they lost 1-0 away to Ukraine in October 2009.
Southgate’s side remain top of Group A on 12 points alongside the Czechs, who have played a game extra. England could still clinch qualification on Monday with victory in Bulgaria if Kosovo fail to beat Montenegro.
World champions France claimed a 1-0 win away to Iceland as Olivier Giroud delivered the only goal with a penalty on 66 minutes in Reykjavik.
Giroud has played sparingly for Chelsea this season but the 33-year-old is now just four goals behind Michel Platini (41) for second on France’s list of all-time leading scorers.
France are level on 18 points with Turkey atop Group H ahead of Monday’s showdown in Paris, where victory would send Didier Deschamps’ men through to the finals.
“It was very difficult, a really hard match. We needed to take the three points and now we have an important game coming up at home,” said Antoine Griezmann, who was fouled for the penalty.
“We’re going to suffer against Turkey and we’ll need to prepare well for it.”
Cenk Tosun popped up with a 90th-minute winner for Turkey as they scraped past Albania 1-0 in Istanbul.
Iceland’s first home loss in qualifying since June 2013 dropped the Nordic island nation six points adrift of the top two.
Juventus star Ronaldo grabbed his 94th goal at international level in Portugal’s 3-0 home victory over Luxembourg.
Bernardo Silva opened the scoring in Lisbon in the first half before Ronaldo added a second on 65 minutes with a magnificent chip following an error in the visitors’ defence.
Goncalo Guedes added a late third although defending champions Portugal still trail Group B leaders Ukraine by five points.
“We are already thinking about the crucial game with Ukraine, like we did for this one,” said Portugal coach Fernando Santos.
“There are four finals left and this one is over. We want to finish first.”
Portugal next travel to Kiev to face a Ukraine side on the cusp of qualification following a 2-0 home win over Lithuania secured by Atalanta midfielder Ruslan Malinovskyi’s brace.
A goalless draw between Montenegro and Bulgaria eliminated both teams from contention in Group A, while it was a night to remember for Andorra.
The minnows won their first European qualifier in history after 56 defeats in a row as Marc Vales’ second-half header earned Andorra a 1-0 victory over 10-man Moldova.