Christian Gentner's opener for the home side was cancelled out by Alexander Meier midway through the second half.
However, Ibisevic delivered what proved to be the winner six minutes from time as Stuttgart climbed into the top half of the table.
The hosts took just six minutes to grab the lead when Frankfurt defender Anderson failed to clear a cross from the right by Ibrahima Traore, allowing Gentner to poke home his first goal of the season from six yards out.
Frankfurt's first chance came after 25 minutes with Meier heading just over the crossbar, and the visitors were almost the beneficiaries of an own goal nine minutes later when Martin Harnik's headed clearance dropped just past the left post.
Harnik then came close for Stuttgart at the right end of the pitch this time, the Austrian smashing a shot against the left post within a minute of the restart.
Stuttgart goalkeeper Sven Ulreich was forced to make two good saves around the hour mark, first from Stefan Aigner and then Sebastian Jung as Frankfurt threatened once more.
Visiting goalkeeper Kevin Trapp was also called upon to show his skills a minute later, getting down low to turn away Serdar Tasci's low strike.
And Frankfurt were back on level terms after 67 minutes thanks to Meier, who placed a beautiful curling shot into the top right corner.
However, Stuttgart still had something in the tank and after Ibisevic saw a header ruled out for offside, the Bosnian striker nodded home a delivery into the box from Harnik.
Frankfurt's efforts to salvage a point were denied by Ulreich in stoppage-time when he pulled off a superb save to keep out Karim Matmour's shot.