Goals from Fabien Lemoine and Romain Hamouma either side of halftime prevented Claudio Ranieri’s men from narrowing the five point gap between themselves and league leader PSG, which could extend its lead to eight points with a win over Marseille on Sunday.
The defeat brings an end to Monaco’s 10-game unbeaten run in all competitions while its opponent moves into third place, the league’s highly-contested Champions League qualifying spot, ahead of Lille, which meets Ajaccio on Sunday.
The game got off to a slow start with neither goalkeeper being tested in the opening quarter of an hour. However Christophe Galtier’s side took the lead after 17 minutes as Lemoine pounced on a loose ball and sent it blazing past Monaco goalkeeper Danijel Subasic from 30 yards.
The 26-year-old almost doubled his side’s lead later in the half but this time Subasic came out on top as he diverted the effort wide.
Monaco then began to threaten before the break as Nicolas Isimat-Mirin and Geoffrey Kondogbia fired towards goal but was denied by Stephane Ruffier.
The Verts shot-stopper was called into action again early in the second period as he kept out Valere Germain and James Rodriguez to preserve the hosts’ lead.
Saint-Etienne was able to capitalize on Monaco’s weakness up front as Hamouma dribbled past a handful of players before unleashing a shot which hit the back of the net when Subastic misjudged the flight of the ball and could only divert it over the line.
The deflated Rouge et Blanc were limited to shots from distance from then on in as the hosts kept them at bay to maintain their advantage and see out the result.
The result puts Saint-Etienne in a fantastic position as it looks to secure European football this season while Monaco is in danger of seeing its chance at the league title disappear.