Having endured a quiet opening half-hour to the match, Rennes sprang into life in the 33rd minute to go ahead. From a Saint-Etienne corner, the hosts broke downfield before Emerson picked the ball up on the left touchline and swung a cross into the near post where Romero rose unmarked to nod in the opener.
Rennes had two chances to double their lead just before the break. First Alessandrini hit a shot which trickled just wide of the far post, before twisted and turned before smashing the ball over.
The hosts nearly doubled their lead with another break downfield, but Alessandrini opted to go for goal from the edge of the box instead of passing to a teammate, and chipped an effort just over the crossbar from the counter-attack.
Rennes should have gone two up early in the second but Stephane Ruffier was quick off his line to deny Romero when played through.
However, Rennes did find a second shortly after when Alessandrini hammered home the rebound into the top corner from an acute angle after Ruffier had pulled off another good save.
Rennes then added a third with 22 minutes to go when Alessandrini's lofted cross from the left into the box and volleyed back across goal by Romero to pick up his brace.
Erding pulled one goal back for Les Verts in injury time, but it was too little too late as Rennes secured a convincing win.
Rennes move up to 11th following the victory, while Saint-Etienne drop to sixth.