Having already defeated three Ligue 2 sides to get here, Cannes competed well in the early stages but were shown the threat they faced with Junya Ito’s shot being tipped behind before Almike N’Diaye cleared Cedric Kipre’s header off the line.
That very threat couldn’t be contained in the 14th minute, as Mamadou Diakhon effortlessly glided towards the byline and cut the ball back for 19 year-old Hafiz Ibrahim to score his first-ever Reims goal with a simple finish.
Undeterred by that setback, Les Dragons made forays forward of their own and Yehvann Diouf required help from his defence after misjudging a corner, with Keito Nakamura shooting wide at the other end moments later.
The hosts went on to deliver a flurry of crosses that Les Rouges et Blancs dealt with well, while Damien Ott’s side struggled to stop Diakhon going the other way.
Cheikh Ndoye and Lorenzo Vinci received bookings four minutes apart for fouling the 19-year-old, who then slid a perfectly-weighted ball through to tee up a chance that Valentin Atangana couldn’t convert.
Stade Pierre de Coubertin erupted into rapturous celebrations just seven minutes after the restart, as Ndoye rose highest to get off a header that Joseph Okumu could only deflect into his own net.
However, Teddy Teuma was introduced in the aftermath and the Maltese international applied a first-time finish to Ibrahim’s low ball to renew Reims’ lead just six minutes later.
Mathias Fischer was denied a swift response of his own before the left-back’s pinpoint cross was met by a powerful Julien Domingues header that Diouf did well to repel.
Chafik Abbas and Oumar Diakité then sent an effort apiece wide at either end as Les Dragons refused to give up on a fairytale final.
Arthur Dassiémou Mai could only fire wide at the end of a swashbuckling run, though, as Reims secured back-to-back competitive victories for the first time since October and ensured they would be the ones to face Paris Saint-Germain for a chance to win the Coupe de France.
Meanwhile, Cannes will now try to reignite their push for a place in France’s third tier having lost three consecutive matches across all competitions.

Flashscore Man of the Match: Hafiz Ibrahim (Reims)