Layvin Kurzawa scored a 90th-minute winner to rescue Monaco after they twice threw away the lead at home to Reims on Friday night.
Kurzawa tapped home after James Rodriguez's volley had come back off a post to keep Monaco hot on the heels of Ligue 1 leaders Paris St Germain.
The hosts found Reims tough to shake off, Valere Germain's opener and Jeremy Toulalan's effort both cancelled out by Prince Oniangue.
The visitors were reduced to 10 men seven minutes from time when Aissa Mandi was sent off and they could not hold out as Monaco reduced the gap on PSG to two points. The capital club have a game in hand.
Reims had the first chance with Mandi's low shot from 25 yards blocked by Monaco goalkeeper Danijel Subasic, while at the other end Toulalan fired just wide from a Rodriguez corner.
And the hosts went in front after eight minutes following another corner, this time Joao Moutinho's delivery picking out Germain, who scored with a near post header.
Emmanuel Riviere almost added a second, but his shot from the edge of the area was narrowly off target.
The home side were stunned in the 53rd minute as Reims levelled.
Odair Fortes' through-ball played in Oniangue, whose control took him away from defenders Eric Abidal and Ricardo Carvalho and whose low finish beat Subasic.
Riviere's header brought a fine save out of Johnny Placide as Monaco looked for an instant response, and they retook the lead in the 63rd minute.
Rodriguez found Toulalan 25 yards out and the midfielder took his time to measure his shot before firing right-footed past Placide.
But Reims would not lie down and Oniangue made it 2-2, on hand to tap home after Subasic had collided with a defender when he came off his line to claim a free-kick.
The visitors suffered a setback when Mandi was sent off for a high-tackle on Kurzawa and worse was to come as they were undone at the death.
Fabinho's cross was volleyed first-time against a post by Rodriguez, but the rebound fell kindly for Kurzawa, who tapped home the winner.