A close game in Budapest swung the way of Jaroslav Silhavy's men 55 minutes in when De Ligt was dismissed for a deliberate handball that prevented Patrik Schick from having a clear goalscoring opportunity.
Tomas Holes then headed in the opening goal before superbly setting up Schick for the second as the Czech Republic progressed to the last eight, where they face Denmark.
The majority of the Netherlands' first-half threat came through the forward runs of Denzel Dumfries, the right-back posing a real danger down the right but unable to provide for Memphis Depay and Donyell Malen.
The best of the first-half chances fell to Antonin Barak, who was teed up by Lukas Masopust but saw his effort from six yards out just blocked over the bar by De Ligt.
Malen carved out a brilliant opening to break the deadlock, driving his way through the Czech Republic defence only to see Tomas Vaclik take the ball from his feet as he tried to round the goalkeeper.
Moments later, De Ligt misjudged a bouncing ball and hooked it away from Patrik Schick with his hand as he fell, leading referee Sergey Karasev to send off the centre-back after a VAR review.
Pavel Kaderabek had a great chance when Schick missed a header, but Dumfries made a brilliant block in front of keeper Maarten Stekelenburg, the Netherlands suddenly on the ropes.
The breakthrough came with a little over 20 minutes left, Holes heading into the net after Tomas Kalas nodded the ball back across the box, with Stekelenburg caught out of position.
Frank de Boer introduced Wout Weghorst in a bid to find an equaliser, but Schick put the game beyond doubt with a slick low finish after Holes drove through a gap between Georginio Wijnaldum and Dumfries before cutting the ball back.