He sprinted onto midfielder Adrien Rabiot's long ball and center back Uros Spajic slid to take the ball cleanly. Referee Sad Ennjimi did not initially give the spot kick but changed his mind after the linesman flagged for a foul.
Cavani sent goalkeeper Ali Ahamada the wrong way for his second goal of the week after scoring in the 1-0 win at Valenciennes in midweek.
Third-place Marseille won 2-0 at Lorient as Mathieu Valbuena and Andre Ayew scored their first goals of the season.
"The first half wasn't good at all. We weren't in the game and we were lucky not to concede a goal," Marseille coach Elie Baup said. "Luckily the second half was better."
PSG hosts Benfica in the Champions League in midweek and then travels to play bitter rival Marseille on Sunday.
Despite having a side packed with attacking talent, PSG struggles to play with fluency. PSG labored to a scrappy win at Valenciennes and again played poorly in a frustrating first half for the home fans.
"What do people ask for in football? We won the league last season and we're unbeaten this season," PSG midfielder Blaise Matuidi said. "We have a big squad and we're well equipped to win trophies."
Toulouse could have scored early on but PSG goalkeeper Salvatore Sirigu kept out Etienne Didot's header.
Still, Blanc maintains the team is improving.
"There's no comparison with the Valenciennes match, this was much better," he said.
The breakthrough came in the 41st minute when Marco Verratti flicked on Thiago Motta's free kick and Marquinhos beat Ahamada at the second attempt after his first effort was saved and the ball deflected back to him off a defender's leg.
"I'm gaining in confidence every match. I've scored twice in 10 days when I hadn't even scored before," said Marquinhos, who also scored in the 4-1 win against Olympiakos in the Champions League. "I hope it continues."
In a rare sight for PSG fans, Ibrahimovic was taken off in the 67th and replaced by Cavani, who scored in the 79th.
Under former PSG coach Carlo Ancelotti, Ibrahimovic played the full 90 minutes in almost every match last season.
Ibrahimovic still managed to stand out, getting into a heated argument with Abel Aguilar after the Colombian midfielder appeared to elbow him in the back, and the imposing Sweden striker then shouted at the Toulouse bench as he walked off.
Marseille withstood spells of pressure before Valbuena who got the winner in the corresponding fixture last season drilled home a free kick in the 58th.
"We didn't play well enough," Valbuena said. "When you win, a lot of things are concealed but you have to own up to it."
In other matches, it was: Evian 1, Bordeaux 1; Lyon 0, Lille 0; Nice 1, Guingamp 0; Saint-Etienne 2, Bastia 2, and Sochaux 2, Valenciennes 0.
Lille is in fourth place. Argentine striker Dario Cvitanich got the winner as Nice moved ahead of Saint-Etienne and into fifth.
Saint-Etienne led 2-0 through winger Franck Tabanou and midfielder Ismael Diomande, but striker Gianni Bruno pulled one back in the 85th and defender Franois-Joseph Modesto equalized deep into injury time.
Sochaux won its first match of the season and moved off the bottom of the table. Valenciennes is now last.
Also on Sunday, Rennes hosts Nantes in their local derby and Montpellier travels to Ajaccio.