The 27-year-old Englishman finished with a 20-under total of 268.
Garcia shot 66, the best round on a day of strong winds and rain.
Graeme McDowell was third at 276 after a 73, while South African David Frost was another shot back in fourth after a 71.
The 48-year-old Frost took the only place available in the July 17-20 British Open to a player not already exempt and finishing in the top five.
Fisher, who already qualified for the British Open, shot a course-record 63 in the first round Thursday despite playing it for the first time. Three more rounds in the 60s followed.
This is a massive achievement for myself, said Fisher, who had his only previous European Tour win last August in the Netherlands.
He also had a chance to win the HSBC Champions event in Shanghai before losing in a playoff to Phil Mickelson.
Fisher bogeyed the second hole in the toughest conditions Sunday, but did not drop another shot, making an eagle 3 at No. 5 and three birdies over the last six holes.
Garcias exceptional round, which consolidated his Ryder Cup place for September, was based on his putting'his weakness in recent years.
I managed to putt really well, Garcia said. Now I know what Tiger (Woods) feels 98 percent of the time when he gets on the greens, so its a great feeling.
He took just 21 putts in his round.
It was definitely the best putting round Ive ever had, he said.
McDowell started in second place and three shots behind Fisher, but his chances vanished when he dropped four shots on the first four holes.
Conditions were brutal for the first 11 holes, but I dug deep and managed to turn it around, McDowell said.
He did not drop any more shots as he moved past Frost into third.
Frost got the Open place he did not expect.
I did not realize Ross had qualified at Sunningdale Monday and I thought he had the spot, Frost said. Maybe that was a good thing for me.