All eyes were fixed on the Luzhniki Stadium for a showpiece finale that few could have predicted when this action-packed summer got under way in Russia.
The clash brought goals, blunders and no little controversy as France eventually ran out victors in Moscow.
The final was an unforgettable end to a tournament that will live long in the memory.
Played at a ferocious intensity from the outset, Croatia continued in the same manner that had seen off England in the semi-finals only for Mario Mandzukic to become the first player to score an own goal in a World Cup final after turning in Antoine Griezmann’s contentiously-awarded free-kick.
Ivan Perisic produced a thumping response as Zlatko Dalic’s men deservedly drew level, only for France to go back ahead as the video assistant referee’s first intervention in a major final allowed Griezmann to score from the spot.
There was little let-up after the break. Following a pitch invasion for which Russian punk rock group Pussy Riot claimed responsibility, Paul Pogba struck home before Kylian Mbappe followed in Pele’s footsteps by scoring in a World Cup final as a teenager.
Hugo Lloris’s gaffe allowed Mandzukic to reduce the deficit, but the France captain would not be denied lifting the trophy as coach Didier Deschamps helped Les Bleus to the title 20 years after doing so as a player.
Final debutants Croatia will rue what could have been here, especially given a first-half display that saw Luka Modric and Ivan Rakitic act as midfield puppet masters.
France had to dig deep and struggled to make an attacking imprint, before controversially going ahead in the 18th minute.
Griezmann went down under minimal contact from Marcelo Brozovic and dusted himself down to send in the free-kick, which Mandzukic inadvertently glanced past his own goalkeeper.
It was a gut punch that Croatia responded manfully to.
Domagoj Vida had a headed attempt and produced a fine challenge on Mbappe, before teeing up Perisic to equalise with a thunderous 28th-minute strike as the rain fell in Moscow.
Croatia won numerous 50-50 challenges from Modric’s free-kick, leading to the defender setting up his team-mate to jink past N’Golo Kante and rifle an unstoppable shot past Lloris.
Joy at that goal was short-lived, though, as France were given the chance to go back ahead 10 minutes later following another controversial incident.
Furious remonstrations followed Perisic’s handling in the box and referee Nestor Pitana jogged over to the TV monitor on the advice of VAR Massimiliano Irrati and his team.
The Argentinian official watched replay after replay before pointing to the spot, to the indignation of those connected to Croatia.
Griezmann kept his cool amid a brewing storm to coolly send penalty-saving expert Danijel Subasic the wrong way.
Vida headed off target as Croatia responded well, but there was to be no leveller before a break that Dalic’s men returned from strongly.
Lloris denied Ante Rebic before pitch invaders temporarily halted proceedings.
That break perhaps took the sting out of Croatia’s play as France kicked on.
Pogba sprayed an amazing pass through to Mbappe in the 59th minute and the Manchester United man continued forward to the edge of the area, where Griezmann laid the ball back to him. Pogba saw his initial attempt blocked but, with his second effort, found the back of the net with a left-footed strike to make it 3-1.
Croatia lost their composure and matters quickly worsened as Mbappe fired a low effort from distance past a statuesque Subasic.
It was a remarkable change in fortunes given how France had toiled for large periods.
But a moment to forget for Lloris gave Croatia a glimmer of hope.
The France goalkeeper paid for inexplicably casual play on the ball, with his attempt to get past Mandzukic resulting in the ball being directed in by the striker.
Dalic’s men attacked with renewed vigor as they attempted to claw France back, but the damage had been done.
Substitutions took the sting out of a final that ended with Croatian players falling to the deck and France celebrating wildly.
France: Lloris, Pavard, Varane, Umtiti, Lucas, Mbappe-Lottin, Pogba, Kante (Nzonzi 54), Matuidi (Tolisso 73), Griezmann, Giroud (Fekir 81). Unused substitutes: Mandanda, Kimpembe, Lemar, Dembele, Rami, Sidibe, Thauvin, Mendy, Areola.
Croatia: Subasic, Vrsaljko, Lovren, Vida, Strinic (Pjaca 81), Rebic (Kramaric 71), Rakitic, Brozovic, Perisic, Modric, Mandzukic. Unused substitutes: Livakovic, Corluka, Kovacic, Jedvaj, Bradaric, Caleta-Car, Badelj, Pivaric, Lovre Kalinic.
Referee: Nestor Pitana (Argentina).