A Marcel Maltritz penalty brought Bochum level in the 66th minute, but the fightback proved to be in vain when substitute Vahid Hashemian - just a minute after his introduction - struck a 71st-minute winner.
Hannover midfielder Hanno Balitsch mustered the first opportunity of the match after two minutes, but his long-range attempt flew wide of the post.
Ten minutes later, Balitsch won a tackle in midfield from which the ball fell to Hanke, who fired past Jan Lastuvka giving the visiting keeper no chance.
Hannover continued to apply the pressure in a bid to build on their lead, with Chavdar Yankov next to try his luck but shooting over.
The second goal arrived nine minutes before half-time following a mistake on the left by Bochum. Rosenthal picked up possession in the left channel and drilled in a fierce effort from distance which found the top-left corner.
A minute before the interval the visitors pulled one back when Christoph Dabrowski connected with Marco Pfertzel's cross, and a wicked deflection off Bechmann saw goalkeeper Robert Enke completely wrong-footed.
Buoyed by the goal, Bochum started the second half strongly with Joel Epalle forcing a decent save from Enke with a long-range shot.
Enke again had to be alert after 59 minutes when Dennis Grote played Stanislav Sestak in on goal. The keeper came off his line and did enough to distract Sestak, who slotted wide.
Bochum were handed the perfect chance to level in the 66th minute when Sestak was brought down by Frank Fahrenhorst. Maltritz stepped up and made no mistake from 12 yards.
They were back on level terms for only five minutes, though, before a home counter-attack saw Szabolcs Huszti spread play to the left to Michael Tarnat, whose cross found the head of substitute Hashemian. He nodded into the bottom-right corner.
Hannover could have stretched their advantage three minutes from time when a good ball from Jiri Stajner freed Huszti on the left. He ran and crossed for Hashemian, but Anthar Yahia intervened at the last minute for Bochum.