PSG, who have lost to lowly Stade Reims and Sochaux in recent weeks, seemed set for another shock defeat when Benjamin Moukandjo deservedly put the struggling visitors ahead in the 36th minute.
But PSG capitalised on Nancy's mistakes as Ligue 1 leading scorer Ibrahimovic, who missed the midweek Champions League clash with Valencia through suspension, pounced twice in four minutes around the hour to take his league total to 24 goals.
The Qatari-backed club, who reached the quarter-finals of Europe's elite competition for the first time in 18 years, looked far less comfortable against Nancy, who are now bottom of the standings and still six points from the safety zone.
"We know that it's a tough league and that it's hard to play as often as we have done," goalkeeper Salvatore Sirigu told French channel Canal Plus.
"If everything was done already, the sport would not be so great. We have to write our own history," he added when asked why his team has struggled against unfancied opponents.
Lille also recovered from a goal down to record a fifth consecutive league win, 3-1 at neighbours Valenciennes, and climbed to fifth on 46 points.
The home team went ahead thanks to Maor Melikson's first league goal in the 24th minute.
Lille's Ronny Rodelin made it 1-1 in the 55th following a corner and Tulio De Melo also headed home to put the visitors in front with 10 minutes left.
Benoit Pedretti wrapped up the victory with a late goal as the 2011 champions cut the gap to the third and last Champions League qualifying spot to three points.
In Paris, PSG's Sweden striker Ibrahimovic and Italy midfielder Marco Verratti were back after being banned for the 1-1 Champions League draw with Valencia but the hosts produced a mediocre first period and were booed off at half-time.
Nancy almost opened the scoring in the 27th but Yassine Jebbour's curling strike was parried on to the post by Sirigu.
The Italy reserve keeper then saved Moukandjo's low strike nine minutes later but could not prevent the forward heading the loose ball home to give the visitors a surprise lead.
PSG's France winger Jeremy Menez replaced the ineffective Javier Pastore after the break and proved decisive when he set up Ibrahimovic in the area to equalise in the 59th minute after centre back Sebastien Puygrenier chested the ball into his path.
Four minutes later, the Swede ran through on goal from Verratti's neat long pass and tucked the ball into an empty net for his 24th league goal of the season as goalkeeper Damien Gregorini failed to clear.
David Beckham came off the bench for the last few minutes but PSG continued to labour and were lucky to escape when Florian Zitte's diverted effort hit the woodwork with three minutes to go in the day's early kick-off.
Elsewhere, the Ligue 1 youngsters stole the limelight with 17-year-old Adrien Rabiot, on loan at Toulouse from PSG, producing an outstanding strike from outside the box to ear
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.