Ryan Christie kept his cool from the penalty spot to earn Celtic a 1-1 Europa League draw at Rennes.
The hosts went ahead eight minutes before half-time when former AC Milan striker M'Baye Niang won and then converted a penalty.
But Neil Lennon's visiting side acquitted themselves well against a team riding high in Ligue 1 and Christie equalised just before the hour – netting his fifth goal in nine European outings this term.
Celtic were reduced to 10 men in stoppage time when substitute Vakoun Issouf Bayo was sent off for a second bookable offence.
The hosts created the first clear opening in the 13th minute but Clement Grenier badly misjudged his header from Raphinha's cross with the goal at his mercy.
Mohamed Elyounoussi came agonisingly close to sliding in Boli Bolingoli's teasing low cross as Celtic grew impressively into the contest.
It meant Kristoffer Ajer's clumsy tackle on Niang undid plenty of good work – the Rennes forward picking himself up to send Fraser Forster the wrong way from 12 yards.
The Celtic penalty was not such an obvious call, but James Forrest's tumble under a Damien Da Silva challenge persuaded referee Jose Maria Sanchez Martinez to point to the spot, from where Christie confidently blasted home.
Both teams pushed for a winner, with Grenier's rasping free-kick clipping the outside for the post from 25 yards before Forrest shimmied into space to fire over.
Those efforts were pursued somewhat overenthusiastically by Bayo, who was only introduced in the 84th minute. He was cautioned for a foul on Da Silva and then rashly caught Rennes goalkeeper Edouard Mendy when following in a loose ball.
Celtic host Cluj in their next Group E match, with Rennes travelling to face Lazio.