Ligue 1: Toulouse 2 Paris Saint-Germain 4
The Swede took his Ligue 1 tally to 22 for the campaign, but the scoreline somewhat flattered Laurent Blanc's men, who were far from their best at Stadium Municipal.
Ibrahimovic reached the 20-goal mark from the penalty spot when Ezequiel Lavezzi was fouled by Uros Spajic in the area, but a well-controlled volley from Wissam Ben Yedder saw the sides reach half-time level.
Lavezzi kept his cool after a flowing move to put PSG back ahead after 56 minutes, before Ibrahimovic flicked home Yohan Cabaye's free-kick to make it 3-1.
Ben Yedder ensured a nervy ending with his second 18 minutes from time, but Sweden international Ibrahimovic bagged his third with a rebound from his own penalty in the closing stages.
The win sees PSG re-establish a five-point gap to second-placed Monaco, while Toulouse stay 10th.
PSG struggled to create opportunities against an organised Toulouse side in the opening exchanges, and Blanc's men were handed a huge reprieve on 26 minutes.
Jean-Daniel Akpa Apro's cross was deflected to the back post where Serge Aurier crashed an effort against the upright - the ball rebounded to Martin Braithwaite inside the six-yard box but he made weak contact, allowing Salvatore Sirigu to collect.
Having survived that scare, Marco Verratti could have scored for PSG but he put a free header over the crossbar.
However, Toulouse's resistance was broken after 31 minutes. Spajic felled Lavezzi in the penalty area with a rash challenge, and Ibrahimovic converted from the spot.
That goal appeared to settle PSG and Blaise Matuidi burst into the box six minutes later but his left-footed shot was kept out by a combination of goalkeeper Zacharie Boucher and the post.
Captain Thiago Silva then missed a gilt-edged chance shortly before the break, slicing wide at the back post after Ibrahimovic flashed a ball across goal.
And they were punished for their profligacy on the stroke of half-time when Ben Yedder volleyed home emphatically from Etienne Didot's cross.
The visitors regained the lead 11 minutes after the break. Ibrahimovic surged forward and his pass was flicked into the path of Lavezzi by Matuidi, and the Uruguayan swivelled before firing past Boucher into the bottom right-hand corner.
PSG were grateful to Sirigu for keeping the scores level shortly after the hour mark, the goalkeeper producing a fine reaction stop from Aurier's point-blank header.
Cabaye was introduced from the bench to replace Verratti, and he made an instant impact with a whipped free-kick that Ibrahimovic flicked home on 68 minutes.
The lead cut to four minutes later, however, Ben Yedder capitalising with a cool finish in the box when Thiago Motta's interception fell into his path.
There was time for one last twist when Issiaga Sylla handballed Ibrahimovic's free-kick in the area, and the striker saw his initial chipped penalty parried by Boucher but tapped in the rebound.