This has left Milan’s Champions League campaign hanging by a thread.
PSG, which lost their second game to Newcastle United last fortnight, got the job done through goals from Kylian Mbappé, Randal Kolo Muani, and Kang-in Lee.
PSG now return to the summit of the table after Borussia Dortmund recorded an away win in England against the Toons.
The Rossoneri tried to force a series of corners, and Rafael Leao curled wide after an Olivier Giroud back-heel flick.
After flashing a shot wide from distance, Mbappe opened the scoring.
Warren Zaire-Emery returned to action after being rested last weekend and turned Tijjani Reijnders to feed Mbappé, who cut inside Fikayo Tomori and disguised the finish at the near post, wrong-footing Maignan.
PSG doubled their lead a few minutes into the second half, but it was disallowed after a VAR review for Manuel Ugarte barging Yunus Musah off the ball in the build-up.
Milan had an opportunity to score when a long Maignan ball launched Pulisic, who tried to roll it across for Giroud rather than go for goal himself, and the angle was too narrow.
PSG again showed their clinical edge when they doubled their lead when a corner was taken short for Dembele.
After got down quickly to palm away the angled drive, but only as far as Kolo Muani, the Milan defenders were not alert enough to react.
Maignan was again called into action as he kept the scoreline down.
Mbappé cut inside Calabria on the counter-attack, Donnarumma was right behind the Pulisic strike, and Leao curled well wide.
After spotting Donnarumma off his line, Giroid tried the lob, but the Italian got back in time to pluck it off the air.
PSG put the result beyond reasonable doubt with a third goal.
Zaire-Emery burst down the right, rolled across through a dummy, and Kang-in Lee was ready to sweep in relatively undisturbed.