Goals from Fabien Lemoine and Romain Hamouma either side of half-time prevented Claudio Ranieri’s men from narrowing the five-point gap between themselves and league leaders PSG, who could extend their 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 their opponents move into third place, the league’s fiercely-contested Champions League qualifying spot, ahead of Lille, who meet 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 soaring 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 were 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 were able to capitalise on Monaco’s weakness up front as Hamouma dribbled past a handful of players before unleashing a shot which Subastic misjudged and diverted into the back of the net.
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 they look to secure European football this season while Monaco are in danger of seeing their league title charge fizzle out.