Malcom's dramatic stoppage-time equaliser earned Bordeaux a 3-3 draw at Lyon, who saw midfielder Sergi Darder sent off in the first half as their 100 percent start to the Ligue 1 season came to an end.
Nabil Fekir put the hosts ahead with a spectacular long-range effort after 10 minutes, lofting the ball over goalkeeper Benoit Costil from just inside the Bordeaux half.
Lyon doubled their lead after 23 minutes when defender Kenny Tete got on the end of a free kick through the six-yard box to stab home at the far post.
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 when Brazilian forward Malcom saw his follow-up effort deflect in off a defender after his 20-yard free kick hit the wall.
Lyon -- looking to keep pace with champions Monaco, who beat Metz on Friday night -- thought they had wrapped up victory with 15 minutes left when Bertrand Traore curled in a 25-yard free kick.
However, Jocelyn Gourvennec's side secured a share of the points after Danish 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.
St Etienne moved level on points with Monaco at the top of Ligue 1 after continuing their 100 percent start with a 3-0 win over struggling Amiens at Stade Geoffroy-Guichard.
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 minute 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.
Elsewhere, there was 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 DR Congo 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 Argentine forward Emiliano Sala.