Midfielder Jonathan Bamba put the hosts ahead in the 13th minute from the penalty spot after Lois Diony had been tripped by Amiens defender Brighton Labeau.
The referee awarded a second penalty four minutes before the break when Diony was caught as he attempted to round goalkeeper Regis Gurtner, and this time Bryan Dabo converted from 12 yards.
Dabo knocked in a third for St Etienne in the 67th minutes from 20 yards when the ball broke to him off a sliding challenge from the Amiens keeper after Romain Hamouma had sprinted clear.
A third straight defeat leaves Amiens bottom with no points or goals, having conceded seven.
Earlier, Malcom's dramatic stoppage-time equaliser gave Bordeaux a 3-3 draw at Lyon, who saw midfielder Sergi Darder sent off in the first half as their perfect start to the new season came to an end.
Nabil Fekir put the hosts ahead with a spectacular long-range effort after 10 minutes from just inside the Bordeaux half.
Lyon doubled their lead after 23 minutes through defender Kenny Tete after a free-kick through the six-yard box.
However, midfielder Darder then collected two quick cautions, the second yellow card followed by a red after 36 minutes after catching Bordeaux captain Jeremy Toulalan with a high boot.
Bordeaux pulled a goal back just before half-time through Brazilian forward Malcom with a deflected follow-up after his 20-yard free-kick hit the wall.
Lyon, also looking to keep pace with champions Monaco who beat Metz on Saturday morning AEST, thought they had wrapped up victory with 15 minutes left when Bertrand Traore curled in a 25-yard free-kick.
However, midfielder Lukas Lerager set up a grandstand finish when he slotted home at the back post with two minutes left and Malcom then slammed home another long-range effort into the top corner.
Elsewhere, there was also late drama at Roazhon Park where a stoppage-time penalty from Julio Tavares earned Dijon a 2-2 draw with Rennes.
A goal in each half from forward Firmin Ndombe Mubele - his second floating in over the goalkeeper from out wide on the left - had put the hosts in control.
Korean Kwon Chang-hoon, though, reduced the deficit in the 51st minutes with a close-range header and the visitors earned a point when Rennes defender Edson Mexer scythed down Naim Sliti and Tavares cracked the penalty into the top corner.
Nice recorded their first win after beating Guingamp with goals either side of half-time from Alessane Plea and Remi Walter.
Montpellier and Strasbourg drew 1-1 at Stade de la Mosson.
Idriss Saadi put the visitors ahead midway through the first half, but defender Daniel Congre equalised from a corner with 18 minutes to go.
Nantes survived the sending off of forward Chidozie Awaziem after only 34 minutes to pick up a first win with a 1-0 victory at Troyes after a late goal from forward Emiliano Sala.