Didier Deschamps' side repeated the success on home soil at France '98 by a margin that hardly looked possible as Croatia stood toe-to-toe with the favourites for an hour.
France's victory meant Deschamps, who captained them 20 years ago, became just the third man to win the competition as a player and coach.
Croatia also felt their luck deserted them, but ultimately France ran out victorious to erase the memories of the loss to Portugal in the Euro 2016 final in Paris.
In one of the most exciting World Cup finals of the modern era, played out to a soundtrack of thunder, Croatia and France delivered an enthralling spectacle that brought the joint highest goal tally in a final since 1958, a pitch invasion, and a controversial intervention from the video assistant referee that had a huge influence on the outcome.
France took the lead after 18 minutes when Antoine Griezmann's free-kick deflected in off Mario Mandzukic's head - but Croatia were by far the better side in the first half and deservedly equalised courtesy of Ivan Perisic's left-foot finish.
Croatia were left nursing a burning sense of injustice when France restored their lead seven minutes before half-time through Griezmann's penalty, awarded by referee Nestor Pitana for handball against Perisic after a lengthy delay while VAR was consulted.
In a compelling second half, France looked to have wrapped it up with two strikes in six minutes from Paul Pogba and Kylian Mbappe either side of the hour mark.
Croatia, however, showed unbreakable spirit and even threatened a comeback when Mandzukic took advantage of France goalkeeper Hugo Lloris hesitating over a clearance to pull a goal back.
But France closed out the win to bring redemption for Deschamps after defeat at the Euros two years ago, sparking wild celebrations and ensuring Lloris lifted the World Cup.