The Senegal striker headed in a cross from Hamari Traoré in the 89th minute, finally ending the resistance of 10-man Nimes — which had midfielder Anthony Briançon sent off in the 53rd.
But Niang equalized six minutes later, bundling the ball home following a goalmouth scramble after Nimes failed to deal with Traoré’s cross from the right.
Rennes remains one point ahead of Lille, with third place securing a place in the Champions League qualifying rounds next season.
Nimes is 18th in the relegation-promotion playoff spot.
Saint-Étienne is struggling in 15th, and only two points above Nimes after drawing 1-1 at home to eighth-place Reims.
Forward Boulaye Dia grabbed a point for Reims with a last-minute penalty after striker Denis Bouanga put the home side ahead in the 73rd.
Later Sunday, league leader Paris Saint-Germain was at home to Bordeaux with a chance to move 13 points clear of second-place Marseille.