Ligue 1 Wrap: PSG go four points clear as Lille held
Laurent Blanc's men went into Saturday's game at the Parc des Princes knowing they could extend their lead at the summit following third-placed Monaco's 1-1 draw with Evian on Friday.
And the champions made no mistake as Ibrahimovic produced a wonderful display to seal the points.
The Sweden international turned home Gregory van der Wiel's volleyed cross to put PSG in front seven minutes prior to half-time, before doubling their lead from the spot 12 minutes into the second half.
Defender Nemanja Pejcinovic pulled one back for Nice on 70 minutes, but their hopes of a fightback were ended when Ibrahimovic capped off his treble with a powerful header from Lucas Moura's right-wing delivery that represents his 50th goal for PSG.
Blanc's side are now four points ahead of Lille in second place following their 0-0 draw at Guingamp.
The hosts were reduced to 10 men when midfielder Lionel Mathis was sent off late on, but Rene Girard's side could not take advantage in a game bereft of clear-cut chances.
Elsewhere, Valenciennes missed the chance to move out of the bottom three as a last-gasp equaliser forced them to settle for a 1-1 draw with Montpellier.
Ariel Jacobs' men took the lead at the Stade du Hainaut after six minutes through Benjamin Angoua's close-range strike, but midfielder Benjamin Stambouli struck in the 91st minute to earn a share of the spoils for Montpellier despite Mathieu Deplagne's dismissal.
Bastia maintained their unbeaten home record as they overcame Rennes 1-0 thanks to an eighth-minute goal from Lille loanee Gianni Bruno.
Bruno held off the attentions of several Rennes defenders to volley past Benoit Costil and secure a win that sees the Corsicans leapfrog Philippe Montanier's side into ninth place.
Meanwhile, Toulouse were held to a 1-1 draw by struggling Ajaccio, as Reims played out a goalless stalemate at Lorient, who had winger Maxime Barthelme sent off in the second half.