They started brightly when Gregory van der Wiel broke down the right and put a dangerous ball into the box that needed to be headed away by Uros Spajic.
But Toulouse marshalled the PSG attack well and restricted the hosts' opportunities.
However, Toulouse were nearly level immediately when Etienne Didot's corner found Aymen Abdennour, who saw his effort blocked on the line.
PSG should have doubled their advantage after Zlatan Ibrahimovic used his power to beat Spajic, but he put his shot into the side-netting.
Minutes later Brazilian Lucas Moura missed an opportunity when his good run was followed with a tame shot at keeper Ali Ahmada and the hosts looked to turn the screw.
Cavani tucked away the spot kick and sent Laurent Blanc's side to the top of the table, although Monaco can reclaim first place if they beat Reims tomorrow.