Kader Mangane headed the French side in front in the second minute.
But Stokes equalised with a poacher's goal on the half-hour and the striker fired Celtic ahead before the break.
Gary Hooper came off the bench to seal Celtic's victory, finishing well at the end of a one-two with Georgios Samaras eight minutes from the end.
The win helped Neil Lennon's side move on to five points in Group I, two behind joint-leaders Atletico Madrid and Udinese, while Rennes, who had Yann M'Vila sent-off towards the end, are bottom with two points.
It was the French club who took the lead when Julien Feret's corner was headed into the net by captain Mangane, with the home defence seemingly caught cold.
The early goal stunned Celtic and they struggled to find the fluency required to put Rennes under pressure.
And the visitors were dangerous on the counter-attack, adept at mounting quick breaks from loose Celtic passes.Mangane had headed Rennes into an early lead
But when the hosts finally carved out a meaningful attack, Stokes drew them level.
James Forrest drove at the Rennes defence and fired in a low shot that was palmed out by goalkeepeer Benoit Costil to Stokes, who converted the rebound from just outside the six-yard box.
And Celtic were in front by half-time as Rennes failed to cope with a long ball from keeper Fraser Forster.
Samaras headed on to Stokes, who got in behind the visiting defence to drill a low shot into the corner of the net.
Paddy McCourt, given a rare start in the Celtic line-up, weaved his way into the Rennes penalty area early in the second half but an excellent challenge by M'Vila prevented the winger getting his shot away.
Another Feret set-piece, this time a free-kick, created a headed chance for substitute Victor Montano but the forward could not keep his effort down as he rose unchallenged in the box.
Montano threatened again moments later, attempting to chip Forster from the inside-right channel, but the effort sailed across the face of goal and was eventually cleared.
Forster was called into action to tip a Youssouf Hadji shot over and the same man was denied by the Celtic keeper again moments later after heading towards goal at the back post.
Those saves proved crucial as Celtic extended their advantage through Hooper.
The striker, on in place of Forrest, spread play wide to Samaras before racing forward to receive the Greek's return pass and slip the ball past Costil.
Rennes' misery was complete when they were reduced to 10 men, M'Vila picking up a second booking for a late tackle on McCourt's replacement Kris Commons.