Reims climbed into the top half of the table thanks to a 1-0 success at bottom club Guingamp.
EA Guingamp 0-1 Stade de Reims
Jocelyn Gourvennec's Guingamp had Papy Djilobodji sent off in the second half and were frustrated not to be awarded a penalty late on (84') for handball claims that resulted in a VAR review, leaving Cafaro's 38th-minute strike separating the sides.
This was a slow burner and the first chance didn't come until the 28th minute when Guingamp forward Nolan Roux headed marginally wide. Reims took the lead with their first attempt (38') as Christophe Kerbrat's misplaced header allowed the visitors from Champagne country in and Cafaro slammed the ball through Marc-Aurèle Caillard's defences. Caillard then saved well from Rémi Oudin (44') as half-time approached.
At the start of the second period Lebogang Phiri (49') forced Edouard Mendy into a save, but ten minutes later (59') former Sundelrand defender Djilobodji was sent from the field after connecting with Pablo Chavarria's face. Initial reports suggested the forward had suffered a broken nose.
Oudin (75') missed an opportunity to wrap up the game, though David Guion's side did see it out with just the VAR handball review as a scare before the final whistle sounded. Guingamp return to action on Tuesday when they host second-bottom Monaco in the semi-finals of the Coupe de la Ligue.
THE PLAYER: Mathieu Cafaro
After missing the penalty that saw Reims exit the Coupe de France on Tuesday at Toulouse, this was the perfect fillip for the midfielder as he netted the winner to make it four goals in seven games in all competitions. The 21-year-old has been one of the revelations of the season.
THE STAT: 7
This was Reims' first clean sheet in seven matches since a 0-0 at Marseille on December 2.