The hosts made a slow start, with both sides struggling to create clear chances during the opening half-hour. Diogo Sousa fired wide for Strasbourg, while Giovanni Reyna had an effort saved at the other end.
Rennes broke the deadlock in the 34th minute when Przemyslaw Frankowski delivered a pass into the penalty area and Boulaye Dia finished first time after finding space in front of goal.
Strasbourg's defensive problems continued as the visitors conceded for the 16th consecutive Ligue 1 match, leaving them with an uphill battle to recover.
Rennes doubled their advantage four minutes before half-time. Mahamadou Nagida sent the ball across the area, allowing Sebastian Szymanski to strike a first-time finish beyond goalkeeper Filip Jorgensen.
Strasbourg needed a strong response after the break but instead conceded a third goal just after the hour mark.
Szymanski produced the standout moment of the match in the 61st minute, collecting the ball around 25 yards from goal before curling a superb left-footed effort against the underside of the crossbar and into the net.
His second goal effectively ended the contest, with Strasbourg unable to register a shot on target in the second half as Rennes comfortably saw out the victory.
The defeat leaves Strasbourg in the relegation play-off position after four successive league losses, highlighting the scale of their defensive struggles.
Rennes, meanwhile, climbed six places to the top of the standings with 16 points, putting themselves firmly in the early-season title conversation.
Elsewhere on Sunday, Marseille edged Le Havre 4-3 in a seven-goal thriller, while Monaco and Lille shared a 1-1 draw after Tanguy Nianzou was sent off for Lille in the 66th minute.
Auxerre and Le Mans also drew 1-1, while Angers and Lorient, along with Toulouse and Troyes, played out goalless stalemates.
Paris Saint-Germain's match against Lyon was postponed until Monday because of security concerns in Paris.