Following Sweden’s crushing 8-0 thrashing of Luxembourg, this win was enough to keep Didier Deschamps’s team a point ahead of the Scandinavians, with one match to come.
Hosting minnows Belarus on Tuesday, France will be confident of holding onto top spot and securing a place in Russia next June.
“It was a difficult match with lots of mistakes, commitment,” said Deschamps, who became France’s most successful coach with a 42nd victory from 68 matches since taking over the reins in 2012.
That surpassed Raymond Domenech’s 41 wins from 71 games (2004-2010) and Michel Hidalgo’s equal mark from 75 encounters (1976-84).
“We didn’t have a great second half, we had few opportunities and struggled a lot. They were more aggressive.
“The essential thing (winning) is there, that’s what matters, but we should be able to do better.
“We’re still first — that’s important — we’ve got one match left and (qualification) remains in our hands, so we have to win on Tuesday.”
Talk in the build-up to this game had centred on a match 24 years ago when Bulgaria had denied France a place at the 1994 World Cup in the United States.
France had been cruising at the top of their World Cup qualifying group but conceded two goals in the final seven minutes to lose 3-2 at home to Israel, meaning they had to avoid defeat in the final game, at home to Bulgaria.
But a month later Emil Kostadinov scored a last minute winner at the Parc des Princes to give Bulgaria a 2-1 win and send them, just one point ahead of France, to the World Cup.
This was a very different scenario, though, as France rarely looked in difficulty against limited opponents who have never found a generation of players to replace the likes of Hristo Stoichkov and Yordan Letchkov, who took them to the semi-finals in the US.
France were off to a flying start as a flowing team move ended with Antoine Griezmann teeing up Matuidi to blast home from a tight angle on three minutes.
“Sweden had won just before, it was important to win here,” said Matuidi.
“We knew it would be difficult, they’re a team that had won four times at home in this group.
“We had to fight to the end and play like men!”
The visitors were the better side but Kylian Mbappe and Griezmann both fired off target when well placed.
Goalkeeper Hugo Lloris had little to do until the 37th minute when he was called into action twice in a matter of seconds.
While he didn’t cover himself in glory spilling Todor Nedelev’s sighter from distance, Lloris pulled off a brilliant, instinctive, one-handed stop to keep out Georgi Kostadinov’s follow-up header.
It wasn’t all plain sailing for France as the engine was stripped out of their midfield 10 minutes before half-time when Chelsea’s N’Golo Kante went off with a hamstring injury, to be replaced by Adrien Rabiot.
Kante will miss Tuesday’s match, Deschamps said.
Bulgaria had an early chance in the second period, but Spas Delev fired well off target.
It turned into a niggly and at times bad-tempered affair with little quality and even fewer chances on show.
But in exorcising the ghosts of 1993, France won’t care a dime.