France will face Germany in the semi-finals of Euro 2022 after ending the Netherlands' reign as European champions thanks to Eve Perisset's penalty in a 1-0 win after extra-time on Saturday.
The scoreline did not do justice to the gulf in class between the sides as France were frustrated for 90 minutes by the brilliance of young Dutch goalkeeper Daphne van Domselaar.
However, the FC Twente stopper was finally beaten from the penalty spot 12 minutes into extra-time when Kadidiatou Diani was tripped by Dominique Janssen.
It took a VAR review for the spot-kick to be awarded and Perisset's penalty just had too much power for Van Domselaar.
Defeat rounded off a difficult tournament for the Dutch, who had been weakened by injuries to key players and coronavirus cases.
Vivianne Miedema was fit to return after she missed the group stage wins over Portugal and Switzerland due to Covid.
However, the Arsenal striker looked well short of match fitness as one of the world's best players struggled to have any meaningful impact on the game.
France scored five in the first half of their opening game against Italy and could easily have repeated that feat in Rotherham.
The Netherlands lost veteran goalkeeper Sari van Veenendaal for the rest of the tournament to a shoulder injury in their opener against Sweden, but Van Domselaar has shone in her absence.
The 22-year-old had made just one international appearance prior to Euro 2022, but now looks certain to keep her place as the Dutch number one going forward.
France were also guilty of wastefulness in front of goal as they missed the predatory presence up front of the injured Marie-Antoinette Katoto.
Diani was first to test Van Domselaar before Delphine Cascarino stung her palms.
Cascarino then fired against the post from outside the box and Sandie Toletti blazed over a glorious chance before Stefanie Van der Gragt twice rode to the Netherlands' rescue.
The Ajax centre-back got back to clear off the line from Melvine Malard and then blocked another goalbound effort from Grace Geyoro as France bombarded the Dutch goal without reward.
Miedema had to wait 55 minutes for a sight of goal and the Netherlands' all-time record goalscorer would have expected to do better when she volleyed over when unmarked from a corner.
Soon it was Van Domselaar who was back in the firing line, though, as she flew to her right to turn Wendy Renard's header to safety.
Geyoro then headed wide with the goal gaping before Renard turned away in disbelief when her looping header was clawed away by Van Domselaar with the last act of the 90 minutes.
France, though, refused to be denied a place in the last four of a women's European Championship for the first time.
Diani's pace took her away from Janssen, who dived in with a desperate lunge to halt the Paris Saint-Germain forward.
Croatian referee Ivana Martincic initially thought Janssen got a touch on the ball, but corrected her decision once shown a replay.
Van Domselaar still nearly denied Corinne Diacre's women as she got finger tips to Perisset's penalty, but was finally beaten. (AFP)