The Atlas Lions, who beat Belgium in the group stage before knocking out Spain and Portugal on a famous run to the final four, were brilliant once again in a hugely entertaining clash at Al Bayt Stadium.
Les Bleus – who could become the first nation since the revered Brazil side of 1962 to retain the trophy – were pushed all the way before securing a hard-fought 2-0 win to book a meeting with Lionel Messi and company at Lusail Stadium on Sunday night.
Theo Hernandez struck early on but Morocco, the first African semi-finalists in history, more than matched their illustrious opponents before substitute Randal Kolo Muani’s first France goal settled matters in the closing stages.
There will be subplots aplenty on Sunday, Messi up against club-mate Kylian Mbappe at the forefront, but this was a night where Morocco proved their shock progression into the last four was no fluke, going toe-to-toe with the reigning champions as well as having a strong penalty claim turned down.
For the Morocco players and their energetic coach Walid Regragui, this turned out to be one dream too far having already beaten Belgium, Spain and Portugal – ending the hopes of Eden Hazard, Sergio Busquets and Cristiano Ronaldo en route to a historic semi-final.
Regragui was keen to reward the players who had claimed those scalps as Nayef Aguerd and captain Romain Saiss were included in the starting line-up despite being major fitness doubts.
But that plan backfired even before kick-off – West Ham defender Aguerd, who had been struggling with a thigh injury, replaced by Achraf Dari after the warm-up.
Morocco’s fans filled the Al Khor night with noise and they were still at fever pitch when, with less than five minutes played, Hernandez benefitted as a lucky rebound off Dari from an Mbappe shot fell into his path and he steered past Yassine Bounou.
If there was a roof at Al Bayt Stadium, it would have come off had Hugo Lloris not been equal to an arrowed Azzedine Ounahi effort as Morocco looked to hit back, a sign of things to come from just the third nation outside of Europe and South America to have gone this far at a World Cup.
Olivier Giroud’s fierce strike hit the post with Bounou beaten and – having chased him back – Saiss’ evening ended there, the Morocco captain forced off with just 21 minutes on the clock as he was replaced by midfielder Selim Amallah.
The African side were not to be put off and could have been awarded a penalty as Sofiane Boufal tangled with Hernandez – but instead the former Southampton winger was booked for his part in the challenge.
Mbappe darted past Achraf Hakimi but could not hit the target with his resulting shot as Giroud passed up a great chance to double the lead, curling the rebound wide.
A mixture of post and Lloris’ outstretched glove prevented Jawad El Yamiq from levelling with a glorious overhead kick as the tie remained in the balance heading to half-time.
Both Raphael Varane and Ibrahima Konate were on hand to clear crosses away as Youssef En-Nesyri looked to pounce with France starting to show signs of frustration.
Substitute Abderrazak Hamdallah should have got a shot off sooner after breaking into the France box but was crowded out as time began to run out.
Their hopes would soon be extinguished, however, as another deflection from an Mbappe shot fell at the feet of Kolo Muani, who tucked the ball home having replaced Ousmane Dembele just 44 seconds earlier.
Even then, Morocco refused to concede defeat – Jules Kounde’s clearance off the line from a deflected Ounahi shot maintaining France’s clean sheet and sending Didier Deschamps’ side through to consecutive finals.