The Croatian forward's goal was the difference in the Bundesliga champions' first away game of the season
The Croat netted with a superb first-half effort as the reigning champions made it two wins from two games.
Bayern boss Pep Guardiola left new signing Mario Gotze on the bench but made one change from the victory over Borussia Monchengladbach with Xherdan Shaqiri coming in, while Stefan Aigner, Takashi Inui and Anderson all started for Frankfurt.
In front of an electric atmosphere at the Commerzbank-Arena, the early exchanges saw both sides threaten as Bayern unsurprisingly controlled possession.
David Alaba impressed down the left-hand side for the visitors, providing a number of supporting runs, and a Franck Ribery cross from that area saw Toni Kroos hit the post with a header after nine minutes.
And after a period of sustained pressure, Mandzukic spectacularly opened the scoring for the visitors with an acrobatic volley into the top corner after an accurate cross from Thomas Muller.
Frankfurt then pressed for an equalizer, but Bayern continued to dominate the midfield battle with Bastian Schweinsteiger and Toni Kroos keeping possession ticking over. Alex Meier momentarily threatened for the hosts though, but his powerful header was directed safely into Manuel Neuer’s arms.
This followed a number of great chances for Guardiola’s men to double their lead, with Muller and Dante both having golden opportunities. Ribery orchestrated Muller’s chance - again down the left-hand side - but the Germany international was yards away from making firm contact in the penalty area.
A fine point-blank save from goalkeeper Kevin Trapp kept Frankfurt in the game after Dante hit an effort from close-range, as the visitors looked to increase their lead.
Frankfurt thought it had equalized from a corner on 41 minutes with a header from Johannes Flum, but the referee ruled the goal out as Meier was caught in an offside position.
Armin Veh’s men restarted proceedings with renewed vigor and optimism after the break as they battled to find an equalizer.
However, the home side struggled to create many clear-cut opportunities, and Guardiola introduced substitutes Thiago Alcantara and Arjen Robben as the away side looked to take the sting out of the game.
Bayern still looked dangerous and had chances to seal the win in the closing stages, but the one-goal lead ultimately proved enough to secure all three points and condemn Frankfurt to its second loss of the season.