Juan Arango gave the hosts the lead after 11 minutes but Stefan Aigner equalised for Frankfurt soon after.
Oscar Wendt then fired Gladbach back in front before Patrick Herrmann made it 3-1 on the hour mark, with Raffael rounding off the scoring.
Gladbach have now suffered just one defeat in their last five matches, but Frankfurt have not won in five and remain at the wrong end of the table on 10 points.
In driving rain, Gladbach took the lead after 11 minutes from a set-piece as Arango curled his free-kick from just outside the box over the wall and inside the right post. Three players in Frankfurt's wall failed to jump, giving the Venezuelan plenty of room for the goal.
Frankfurt did not have to wait long for their reply, though, thanks to an error by Gladbach goalkeeper Marc-Andre ter Stegen four minutes later.
His attempted clearance went straight to Aigner, who played the ball to Alexander Meier who in turn passed to Vaclav Kadlec. Ter Stegen managed to halt Kadlec's charge but Aigner ran on to the loose ball to fire home.
Gladbach quickly regained their composure and the lead after 18 minutes following an attack down the left, with Raffael passing to Wendt, who beat Frankfurt keeper Kevin Trapp at the near left post with a left-footed strike.
The hosts then extended their advantage on the hour with Max Kruse providing the ball for Herrmann to stab home into the bottom left corner as Gladbach turned the screw on their opponents.
Raffael then ended Frankfurt's challenge once and for all six minutes later as Herrmann played a neat assist to the Brazilian, who beat Trapp to pick out the far left corner.