He scored the opener from a penalty after he was fouled by Saidy Janko.
Thiago Motta then scored the second after Marquinhos chested down a free-kick from Neymar - who was lively throughout with tricks and flicks.
And Cavani turned home a late third with his heel from substitute Julian Draxler's cross to ensure PSG remain top of the league.
Saint-Etienne - who had also won their opening three games - were better than the scoreline suggests and had 12 shots to PSG's 14.
It was the first game £200m world record signing Neymar has not scored in for PSG, having netted three and assisted three others in his first two matches.
Match ends, Paris Saint Germain 3, St Etienne 0.
Second Half ends, Paris Saint Germain 3, St Etienne 0.
Attempt missed. Adrien Rabiot (Paris Saint Germain) left footed shot from outside the box is too high.
Attempt blocked. Saidy Janko (St Etienne) left footed shot from outside the box is blocked. Assisted by Ronael Pierre Gabriel.
Foul by Julian Draxler (Paris Saint Germain).
Bryan Dabo (St Etienne) wins a free kick on the left wing.
Foul by Adrien Rabiot (Paris Saint Germain).
Ole Selnaes (St Etienne) wins a free kick in the defensive half.
Attempt missed. Presnel Kimpembe (Paris Saint Germain) left footed shot from outside the box is too high. Assisted by Adrien Rabiot.
Corner,  Paris Saint Germain. Conceded by Saidy Janko.
Goal!  Paris Saint Germain 3, St Etienne 0. Edinson Cavani (Paris Saint Germain) right footed shot from very close range to the centre of the goal. Assisted by Thomas Meunier with a cross.
Corner,  Paris Saint Germain. Conceded by Stéphane Ruffier.
Attempt saved. Giovani Lo Celso (Paris Saint Germain) left footed shot from outside the box is saved in the top right corner.
Oussama Tannane (St Etienne) is shown the yellow card for a bad foul.
Neymar (Paris Saint Germain) wins a free kick on the left wing.
Foul by Oussama Tannane (St Etienne).
Attempt missed. Vincent Pajot (St Etienne) right footed shot from outside the box is too high. Assisted by Oussama Tannane.
Foul by Presnel Kimpembe (Paris Saint Germain).
Oussama Tannane (St Etienne) wins a free kick in the defensive half.
Attempt missed. Yuri (Paris Saint Germain) left footed shot from the left side of the box is close, but misses to the right. Assisted by Giovani Lo Celso.
Yuri (Paris Saint Germain) wins a free kick on the left wing.
Foul by Oussama Tannane (St Etienne).
Substitution, Paris Saint Germain. Giovani Lo Celso replaces Javier Pastore.
Substitution, Paris Saint Germain. Julian Draxler replaces Ángel Di María.
Foul by Yuri (Paris Saint Germain).
Oussama Tannane (St Etienne) wins a free kick in the defensive half.
Attempt missed. Javier Pastore (Paris Saint Germain) right footed shot from outside the box is high and wide to the right. Assisted by Neymar.
Substitution, Paris Saint Germain. Yuri replaces Layvin Kurzawa.
Adrien Rabiot (Paris Saint Germain) wins a free kick in the defensive half.
Foul by Oussama Tannane (St Etienne).
Foul by Thomas Meunier (Paris Saint Germain).
Bryan Dabo (St Etienne) wins a free kick in the defensive half.
Substitution, St Etienne. Oussama Tannane replaces Romain Hamouma.
Foul by Presnel Kimpembe (Paris Saint Germain).
Jonathan Bamba (St Etienne) wins a free kick on the right wing.
Attempt missed. Edinson Cavani (Paris Saint Germain) left footed shot from the left side of the six yard box is too high.
Attempt blocked. Ángel Di María (Paris Saint Germain) left footed shot from outside the box is blocked. Assisted by Neymar.
Attempt saved. Jonathan Bamba (St Etienne) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by Bryan Dabo.
Substitution, St Etienne. Leo Lacroix replaces Gabriel Silva because of an injury.
Delay over. They are ready to continue.
Edinson Cavani scored twice as Paris St-Germain beat Saint-Etienne to make it four wins out of four in Ligue 1.