The reigning champions were 3-0 up in 20 minutes, with a Yildiray Basturk brace sandwiched either side of a Mario Gomez strike. Cacau added a fourth soon after the break, with Ioannis Amanatidis netting a consolation for Frankfurt.
Three points for Stuttgart puts them fifth behind Hamburg, who won 3-1 at Hansa Rostock, on goal difference. They will be hoping that Bayer Leverkusen lose at bottom club Duisburg on Sunday so they can keep fifth place.
They made short work of Frankfurt, going ahead within just three minutes. Antonio Da Silva's ball into the box took a unwitting deflection off defender Sotirios Krygiakos to Basturk, who whacked it with authority into the net.
Three minutes later it was 2-0. Gomes received the ball at his feet in the penalty area and managed to turn towards goal, with his shot sailing to goalkeeper Markus Proll's left and into the top of the goal.
With 18 minutes on the clock, Basturk scored his second. He again put power on a shot that Proll nearly got to, but was unable to keep out.
A shellshocked Frankfurt managed to keep Stuttgart at bay for the rest of the first half, then came out for the second half and conceded again two minutes after the restart.
It was Brazilian striker Cacau who got the goal, scampering into the box and drilling a right shot that beat Proll and went into the left of the goal.
When Frankfurt got their consolation in the 62nd minute, fittingly it was Amanatidis who was on the scoresheet, their only real threat all afternoon.
Benjamin Kohler's nice ball through put him one-on-one with Raphael Schafer and he beat the goalkeeper to reduce the deficit.