The leaderboard was crowded, with 15 players within three shots of the leaders, thanks to mainly calm conditions at Doha Golf Course.
Kaymer had a 5-under 67 and Garcia (66), overnight leader Ricardo Santos (70) of Portugal and Marcus Fraser (67) of Australia were at 9-under 135. They had a one-shot lead on five players, including former U.S. Open champion Michael Campbell (68).
Three shots behind after the first round, the former top-ranked Kaymer took the lead thanks to his short game. He holed a chip from the fringe on 13 and made several long putts including a birdie on the ninth. Kaymer had a bogey-free round that featured five birdies.
The understated German felt his round was merely "OK," and believed his score would not be enough to hold up over the last two rounds.
"I played a lot better than the last few rounds I played, especially in Abu Dhabi," Kaymer said. "But I was a little fortunate today, a few putts that dropped, but on those greens that happens sometimes, and I think 9 under is a good position to be in."
Garcia, coming off minor eye surgery last year, said the pristine conditions allowed him to hit a full range of shots including "draws, fades, high, low, things like that."
"I definitely feel like I played a little bit better than yesterday," the Spaniard said. "Hit a good amount of good shots. I gave myself a lot of good chances for birdies. Hit some good putts that didn't go and then made some nice ones, too."
Santos had a one-shot lead after the first round and got off to a strong start on Thursday. He had three birdies on his first four holes but bogeyed the fifth before mixing in a bogey and two birdies on the back nine as the wind picked up.
"Struck the ball very well today. I just missed a few shots but still happy with the round," said Santos, the 2012 European Tour rookie of the year. "This afternoon, the wind is a little bit stronger than the morning, so I'm happy with 2 under this afternoon. Yesterday, you could reach the 16th; today, no. So I think it's a big difference with the wind."
Justin Rose, who finished second last week in Abu Dhabi, was in contention early on with two birdies on his front nine but two bogeys coming in dropped him to 5 under overall and a tie for 20th.
Several big names missed the cut at 1 under, including last year's winner and former British Open champion Paul Lawrie and Europe's new Ryder Cup captain, Paul McGinley.