Monaco required a late goal from defender Layvin Kurzawa to salvage a 2-2 draw away to Lorient in Ligue 1.
Coach Claudio Ranieri had warned his side of Lorient's strength at home and the perils of their artificial pitch, and it proved prophetic as the hosts led through Vincent Aboubakar in the first half and Jeremie Aliadiere in the second.
Title-chasing Monaco levelled on each occasion, through Valere Germain and then Kurzawa, but they still fell five points behind leaders Paris St Germain.
PSG's Friday-night win over Bordeaux left Monaco needing to respond but it was Lorient who went straight on the offensive, Aboubakar hammering a shot against the post in the third minute before opening the scoring in the 11th.
Kevin Monnet-Pacquet delivered the cross from which Aboubakar netted his seventh goal in 10 games - but his first in four - with a powerful header.
James Rodriguez was denied an equaliser by keeper Florent Chaigneau and Lorient could have extended their lead moments later, when Yann Jouffre's drive was deflected behind by visiting keeper Danijel Subasic.
But Monaco drew level five minutes before half-time when Emmanuel Riviere's delicate pass allowed Germain to hammer home from the edge of the 'D', the ball striking the post on its way in.
The second half started quietly, only coming to life after Joao Moutinho's free-kick was beaten away by Chaigneau.
Aliadiere restored Lorient's lead in the 72nd minute when he was teed up by strike partner Aboubakar after Gregory Bourillon's shot was blocked by Subasic.
Chaigneau produced a stunning save to keep out Geoffrey Kondogbia's clever backheel but could do nothing when Kurzawa struck with five minutes left.
The defender stayed forward after a free-kick and was in the penalty area to control Lucas Ocampos' cross and hammer a left-footed strike past Chaigneau.