The win has left the Bundesliga side in third spot in the section, level on points with second-placed Sporting Lisbon and one point behind leaders Tottenham Hotspur.
Marseille, meanwhile, are only two points behind Spurs despite sitting bottom of the group, with all four sides still in the running for qualification ahead of the final matchday.
Frankfurt made the breakthrough in the third minute of the contest, with Daichi Kamada finding the back of the net after strong work from Evan Ndicka in a wide position.
The home side were dominating the match and threatening to score a second, with Mario Gotze and Christopher Lenz coming close, but it was Marseille that netted the game's second goal in the 22nd minute, with Matteo Guendouzi converting a brilliant cross from Chancel Mbemba.
The scores were only level for five minutes, though, as Randal Kolo sent Frankfurt back ahead in the 27th minute, with the forward playing a one-two with Gotze before sending the ball past Pau Lopez in the Marseille goal.
Jonathan Clauss came close to making it 2-2 late in the first period when he struck a volley towards goal, but Frankfurt goalkeeper Kevin Trapp was on hand to make a smart save.
Alexis Sanchez twice came close to registering for Marseille before the hour, but the experienced attacker missed the post from inside the box before forcing Trapp to make a smart save from a dipping free kick.
Nuno Tavares was next to try his luck for the visitors in the 77th minute after working his way into a shooting position, but his effort just rolled wide of the post.
Both sides had half-chances late on, but it finished 2-1 to the home side, who sit third in the section heading into their final match away to Sporting Lisbon.