Uruguay striker Cavani scored from Adrien Rabiot's pass in the 90th minute to put PSG on 13 points from five games after Kostas Manolas had cancelled out Zlatan Ibrahimovic's early opener nine minutes from time.
PSG, who had Marco Verratti sent off one minute into the second half, lead second-placed Olympiakos by six points with one round remaining in Group C.
Benfica are third, also on seven points, after beating Anderlecht 3-2 away with the Belgian side, who have one point, eliminated from all European competition.
Although they struggled after Italy international midfielder Verratti picked up a second yellow card early in the second half, PSG extended their unbeaten run in all competitions to 35 games.
After looking shaky throughout last season, Gregory van der Wiel has been brilliant this term and Wednesday's game was no exception.
The Netherlands international set up Ibrahimovic for the fourth time in the Champions League, the Swede tapping in from a low cross in the seventh minute.
It was Ibrahimovic's eighth goal in the Champions League this season and his 39th from 100 appearances in the main tournament.
In the 34th minute, however, Olympiakos came close to an equaliser but Salvatore Sirigu denied Konstantinos Mitroglou from close range after the Greece striker had taken advantage of Alex missing a tackle in the area.
Cavani's mammoth defensive work eased the pressure on both the midfield and his fellow forwards.
It was then no wonder that Blanc decided to replace Ezequiel Lavezzi, not Cavani, with midfielder Rabiot after Verratti was sent off.
Olympiakos quickly switched to a three-man defence with midfielder Alejandro Dominguez coming in for defender Leandro Salino.
PSG's possession percentage dropped but the visitors failed to create clear chances as Thiago Silva and Alex perfectly marshalled the defence.
Rabiot came close 20 minutes from time when his low cross shot shaved Roberto's left post.
In the 81st minute, however, Manolas stabbed in from close range after Sirigu could only push away Dominguez's deflection into the path of the defender.
In the last minute, Cavani beat Roberto across the keeper's body after collecting Rabio's perfectly-weighted pass on the edge of the area.
(Reporting by Julien Pretot; Editing by Rex Gowar)
Share
