© Getty Images
Rennes then took the lead just after the half-hour mark, as some slick passing play put Ntep through down the left and the winger unselfishly crossed the ball to debutant Ousmane Dembele to slot it home for his first Ligue 1 goal.
Costil was required again moments later as Clement Chantome was played through but the Rennes goalkeeper was quick to close down any chance.
Les Girondins did pull level just before half time after Costil denied Khazri again, only for the ball to fall to the feet of Enzo Crivelli, who could not miss from a few yards out.
© Getty Images
In the second half, substitute Kamil Grosicki put Rennes back in front after a good run from Abdoulaye Doucoure picked out the Polish international and the winger took the shot first time to curl the ball beyond the reach of Carrasso.
However, Bordeaux equalised again after Rennes failed to clear and the ball landed at the feet of Khazri, who cut it back to Diego Contento to calmly take on a defender before blasting the ball home.
Sio was denied a late winner after being played through by Grosicki and despite the forward finishing the move, the play was called back correctly for offside.
In added time, Les Rouges et Noirs were awarded a penalty after Chantome handled the ball in the box, but Sio's effort was saved low by Carrasso.
In the furore, Pallois was sent off for his reaction on the Bordeaux bench and in the dying moments, Fallou Diagne pulled a hopeful flick just wide.
The draw moves Rennes up to eighth while Bordeaux remain 12th in the Ligue 1 table.