Mame Biram Diouf opened the scoring for Hannover after 24 minutes and things got worse for the visitors when Martin Lanig was sent off for receiving a second yellow card 12 minutes into the second half.
Szabolcs Huszti then sealed the win 22 minutes from time.
Frankfurt, who played the final 23 minutes without their manager after Armin Veh was banished to the stands, have now gone winless in their last nine Bundesliga matches.
Neither side created many chances in the early going but the hosts opened the scoring after 24 minutes with Edgar Prib crossing from the left and Diouf rose higher than the Frankfurt defence to head home from seven yards.
Hannover thought they had doubled the lead just three minutes later through Artur Sobiech off a long ball from goalkeeper Ron-Robert Zieler but Sobiech was ruled to be offside.
Frankfurt nearly equalised four minutes before the break but Prib blocked Vaclav Kadlec's drive on the line.
Frankfurt then went a man down as Lanig was sent off for his second bookable offence.
Hannover nearly made it 2-0 in the 65th minute with Huszti's free kick going just wide right.
A minute later, Frankfurt thought they had earned a penalty as Pirmin Schwegler went down in the box but the referee waved play on.
Hannover were given a free kick just outside the box in the 67th minute just seconds before Veh was sent to the stands and Huszti curled the set-piece home to make it 2-0.