Italy forward Moise Kean capitalized on a mistake from Dayot Upamecano to set up Di María’s opening goal in the sixth minute.
PSG ‘keeper Keylor Navas produced a brilliant save to deny Amadou Haidara an immediate response, and Alessandro Florenzi got back to block Angeliño on the rebound.
Upamecano, who was already in the spotlight for a poor performance in Manchester, gave away a penalty in the 15th when he was also booked for blocking Kean’s shot with his hand.
But Péter Gulácsi dived the right way to save Di María’s spot kick, and the visitors were to rue further missed chances to build on their lead.
Christopher Nkunku scored the equalizer against his former side in the 42nd, picking his spot inside the left post after Angeliño played the ball back. PSG coach Thomas Tuchel berated his players for leaving the French midfielder in so much space.
Another penalty awarded for hand ball allowed Leipzig to take the lead. Presnel Kimpembe was penalized through VAR after Angeliño’s cross struck his arm, and Forsberg converted the penalty.
The visitors took another blow in the 69th when Idrissa Gueye was sent off with his second yellow card for a foul on Haidara, and Kimpembe followed him off with his second yellow in injury time for a rash challenge from behind on Yussuf Poulsen.
It was Leipzig’s second win from three games in Group H. The teams meet again in Paris on Nov. 24.