The Czech Republic deservedly ended England's 43-game unbeaten run in qualifiers stretching back 10 years.
England were handed the perfect start when captain Harry Kane put them ahead from the penalty spot in the fifth minute after Lukas Masopust fouled Raheem Sterling but they were well below their best and slumped to a bitterly disappointing defeat.
The Czechs were swiftly level when Jakub Brabec scored following a corner. England could not muster further inspiration and substitute Zdenek Ondrasek pounced to score the winner with four minutes left.
England manager Gareth Southgate said: "I think we have had a lot of credit over the last couple of years and tonight we did not do enough. Our performance was not good enough, it's as simple as that. The goals we conceded were typical of the chances we gave away.
"Collectively we have to accept there were not enough good performances. We tried to change the shape which was not working, we started the second half much better and we had good chances to win the game.
"We conceded too many poor chances and we gave the ball away too many times. We knew we'd have to be at full tilt to deal with the Czech Republic but we should have been strong enough to deal with them."