Hull City 2 Norwich City 1
Dion Dublin scored just moments after coming on to replace Julien Brellier with a fantastic volley, but Windass set up Garcia for a deserved winner.
Garcia carved out the first opening of the game when he spun sharply to cross from the right only for Stuart Elliott to fire over from point-blank range.
Garcia was involved in the majority of Hull's attacking play, and fired wide following a corner from Dean Marney. Moments later, Garcia's low drive ricocheted off the legs of David Marshall as Norwich clung on.
Norwich finally started to show some fight, when Jon Otsemobor raced down the right and drilled a right-footed shot just over.
However, it was a rare attack for the visitors and five minutes into the second half the hosts got the goal their play warranted.
Michael Bridges, a first-half replacement for Nicky Barmby, cut the ball back for Windass to curl home a superb shot from the edge of the area.
Marney lobbed over when clean through moments later, and Dublin made him pay for that miss. The former Manchester United and Aston Villa striker blasted home an unstoppable right-footed volley from the edge of the area after clever support play from Chris Brown.
Gary Doherty headed just over the crossbar seconds later as Norwich went all out for a winner.
However, Hull claimed the points when Bridges played in Windass, who chipped a delicate cross to the far post, where Garcia fired home.