Garcia, who won the Wyndham Championship on Monday, fired a two-under-par 69 to claim a two-shot cushion after three rounds at 10-under 203 as the greens at Bethpage Black in Farmingdale, New York, reached treacherous speeds.
American Nick Watney, who had a three-shot lead in the middle of the third round, ended up with a 71 to hold second at eight-under 205.
Fellow American Kevin Stadler was third at 206 after firing a blistering 65, easily the round of the day.
Woods, who can return to the world number one spot with a victory, battled putting woes to post a 72, leaving him six off the pace at 209 in a tie for 10th.
He three-putted four separate greens for the first time in his US PGA tour career after being unable to come to terms with the changing speed.
"I've never seen greens change like this, from what they were yesterday to today," Woods said. "It's unbelievable how slippery they were.
"You put the putter down behind the golf ball and it was slipping on the grass. It's unbelievable how fast they got."
The 14-times Major winner lamented the mistakes but remained confident of a Sunday charge.
"I played the round I needed to play, unfortunately I didn't putt the way I needed to putt," he said. "If you take the four three-putts away I'm right there in the ball game.”
Garcia traded three birdies for as many bogeys over his opening 10 holes before taking the advantage with birdies on the 11th and 13th holes just as Watney faltered.
"The greens are just probably some of the fastest greens I've ever played," Garcia said.
"Usually when you are putting on fast greens, you have an idea where the ball is going to stop. And today, you didn't.
"You thought the ball was going to stop two feet behind the hole, and it went six.
"I wouldn't say it was unfair. It was borderline. It was very close."
Watney, playing with Garcia in the final group, had four birdies and just one bogey in his opening 10 holes to be three clear before hitting the skids.
Bogeys on 11, 12 and 15 handed the momentum back to Garcia and although Watney rolled in a 35-foot birdie on the 17th, the only birdie on the tough par-three all day, he cancelled that out with another bogey on the last hole.
"It was definitely unfortunate and not what I wanted, but at the same time, there's still so much golf to be played that you know, fortunately for me, they don't give out the trophy after the 13th hole on Saturday," Watney said.
"I'm just going to need to hang around. If Sergio goes out and shoots four or five under, you've just got to tip your hat. "But I'm super excited to be in the last group."