Tuesday night's results leave World Cup winners France second on goal difference in Group A, behind Portugal who beat Sweden 2-0 as Cristiano Ronaldo crossed the 100-goal mark for his country.
French coach Didier Deschamps made seven changes from Saturday's win in Solna, with Wissam Ben Yedder and Anthony Martial leading the attack after Kylian Mbappe was forced out of the side with Covid-19.
Antoine Griezmann, Dayot Upamecano, Olivier Giroud as well as an own-goal from the visitors' goalkeeper Dominik Livakovic secured a repeat of the result when the sides met in Russia two years ago.
Former Liverpool centre-back Dejan Lovren opened the scoring for the visitors in a near-empty stadium due to the coronavirus pandemic with a half-volleyed effort inside the hosts' box after a quarter of an hour of play.
Griezmann equalised with two minutes of the first half remaining by side-footing home Martial's low cross.
French dominate final half-hour
Manchester United's Martial was involved in the next French goal a minute into injury time.
Dominik Livakovic fumbled Martial's attempt into his goal after Ben Yedder's dangerous ball.
The sides were equal once again 10 minutes into the second half as Chelsea's Mateo Kovacic split the home side's defence in half with a tidy through ball.
Substitute Josip Brekalo held up possession well before sliding his effort past Hugo Lloris.
Deschamps' side claimed all three points with two goals in the final 25 minutes.
Seventeen-year-old Eduardo Camavinga became France's youngest international in 96 years when he replaced Ngolo Kante at the Stade de France in the second half and is surpassed only by Julien Verbrugghe, aged 16 years and 10 months in 1906, and Maurice Gastiger, at 17 years and 4 months in 1914.