The former Palermo defender struck in the 86th minute of an entertaining Bundesliga encounter in which four other goals fell in the first half.
Szabolcs Huszti gave the visitors the lead with a 20th-minute penalty only for Aaron Hunt to respond with a penalty of his own. Cedrick Makiadi then handed Bremen the lead for the first time seven minutes before half-time but Hiroki Sakai's brilliant long-range strike restored parity before Garcia made it 3-2 late on.
After a tame start, the game was sparked into life when Clemens Fritz fouled Huszti in the penalty and the Hungarian made no mistake from the spot.
Not long after, Bremen had a penalty of their own when Eljero Elia's trickery was too much for Salif Sane and Hunt netted his first goal of the season from 12 yards.
Bremen took the lead for the first time when Zlatko Junuzovic's shot turned into an assist for Makiadi, who was alone at the far post to nod in from a yard out.
The hosts' advantage lasted only two minutes, though, before Sakai let rip from nearly 30 yards, sending in a shot which dipped just above Sebastian Mielitz's hand and hit the underside of the crossbar on its way in.
Bremen appeared stronger in the second half with a few Hunt free-kicks testing Hannover goalkeeper Ron-Robert Zieler, but debutant Deniz Kadah missed two good chances with his head to give the visitors the lead again.
In the end, it was Garcia who grabbed the winner, scoring at the second attempt after his header from Hunt's free-kick was saved by Zieler.