Monaco came into the game trailing champions Paris Saint-Germain by five points at the top of the table but this loss could see them lose more ground before the weekend is out.
PSG host Marseille in the French 'Classique'.
Monaco coach Claudio Ranieri insisted this defeat had not ended his side's championship hopes — he said they never had any hope.
"We haven't lost (the title) because we've lost here. We need to do 130 percent to take the title and that's not possible," he said.
"The title was promised to PSG from the beginning of the season and it's not lost now."
Midfielder Fabian Lemoine was the hero for St Etienne in the first half as he scored a wonder goal and cleared an effort from Nicolas Isimat-Mirin off the line.
He also had another fine strike saved well by Monaco goalkeeper Danijel Subasic.
Romain Hamouma sealed the three points after beating three players in a run that began in his own half before shooting home from distance, although the ball appeared to go straight through Subasic, who should have done much better.
St Etienne, who have lost only once in their last 11 league encounters, moved above Lille into third and the final Champions League qualifying place, although the latter are away to rock-bottom Ajaccio .
Coach Christophe Galtier said he wasn't going to get too carried away by their lofty position.
"Obviously this gives us a lot of hope. Until someone proves otherwise, we've never said either that we want a podium (top three finish) or that we don't want it.
"We're well placed. Will we finish seventh, eighth or even third at the end of the season, I don't know.
"We have to keep our feet on the ground and tell ourselves that everything is possible. We need a lot of humility."
In the first half, St Etienne earnt a deserved lead when a ball was half cleared from a corner on 17 minutes and Lemoine hit a rasping, rising half-volley that swerved away from Subasic and into the top corner.
Later he broke into the box to meet Brandao's cushioned pass with a vicious strike that Subasic did well to repel.
In between, he had been in the right place at the right time on the line to clear the ball after Isimat-Mirin had prodded goalwards past Stephane Ruffier as a corner caused havoc in the home box.
Midway through the second period Hamouma set off on a run, ghosting between two players and then veering wide of a third before pulling the trigger, but quite how Subasic failed to keep the ball out, perhaps only the Croatia stopper himself knows.