Rennes, who have 19 points from 10 games, were caught out when Joris Marveaux headed home unmarked from a corner two minutes before halftime.
"Football can be cruel. They scored on their only chance of the game, it's quite unfair," Rennes coach Frederic Antonetti was quoted as saying on daily L'Equipe's website.
St Etienne were one point behind Rennes after striker Emmanuel Riviere salvaged a draw with eight minutes left against Caen, and it would have been victory for Les Verts had Dimitri Payet not missed a stoppage-time penalty.
Promoted Brest continued their surprising run with a 2-0 win at Girondins Bordeaux that lifted them up to third on 18 points.
Romain Poyet headed home from a corner in the sixth minute to put the visitors ahead and Benoit Lesoimier latched on to a Tomas Micola cross from the right to put the result beyond doubt 10 minutes from time.
"It's a deserved win. We could have scored more goals before the break," Brest coach Alex Dupont said.
"We defended very well in the first half. Then we sat back but we also took risks and scored that second goal."
The visitors then sat back as Bocaly was shown a straight red card for a violent tackle.
Montpellier are fifth in the table with 17 points, level on points with fourth-placed Toulouse, who won 3-1 at Sochaux courtesy of a Daniel Congre double and a Mauro Cetto goal.
At Geoffroy Guichard stadium, striker Youssef El Arabi opened the scoring for Caen six minutes from the interval but St Etienne piled the pressure on and were rewarded in the 82nd minute.
Riviere poked the ball home after Caen keeper Alexis Thebaux failed to block Payet's attempt.
Payet, the leading scorer in Ligue 1, failed to convert from the spot in injury time when he sent his penalty over the bar.
On Sunday, big guns Paris St Germain and Olympique Marseille will have a chance to move within one point of Rennes. PSG are at home against Auxerre and champions Marseille visit Lille.
- Related links