Brandao opened the scoring after 33 minutes and a Fethi Harek own goal sealed the win in the last minute.
The victory moved St Etienne into the final Champions League place on goal difference, with Lille, now in fourth, set to play Lyon on Sunday.
Marseille maintained their push for European football with a 1-0 win over Lorient.
Andre-Pierre Gignac's goal with just eight minutes to play decided the match as L'OM extended their unbeaten league run to five games.
There was drama at the other end of the table as second-bottom Sochaux scored an 88th-minute equaliser and twice came from behind to draw 2-2 at relegation rivals Valenciennes.
Florian Marange's late header came just two minutes after Majeed Waris' second goal and denied the hosts a win which would have taken them out of the bottom three.
Waris opened the scoring with a penalty in the 51st minute, with Sebastien Corchia getting the visitors' first leveller three minutes later.
Bordeaux enjoyed a welcome return to winning ways as Henri Saivet's late header handed them a 2-1 victory over struggling Evian.
Kevin Berigaud looked to have earned the visitors a point in the 73rd minute when he cancelled out Julien Faubert's 52nd-minute opener, but Saivet popped up eight minutes from time to nick all three points for the hosts.
Basement boys Ajaccio slipped closer to the trapdoor with a 2-0 loss at Montpellier, Anthony Mounier and Remy Cabella scoring in the second half.
Elsewhere, Mustapha Yatabare's stoppage-time goal earned Guingamp their first league win in 11 attempts at the expense of Nice, who had goalkeeper David Ospina sent off for dissent at the death.