Horschel completed 54 holes at 10-under-par 206. He will go for his first PGA Tour title on Sunday.
Jim Furyk posted a 3-under 69 to move into a tie for second with Charley Hoffman (70). They stand at minus-8 at TPC San Antonio.
Rory McIlroy had an up and down round of 71. He was joined in fourth place by Bob Estes (69) and Ryan Palmer (68).
"I felt like I fought back well. I started the back nine with those 3-putts, and then birdied 12 and 14 to sort of get it back there," said McIlroy, who had four birdies and three bogeys in his round of 71. "I had a couple chances coming in that I didn't take advantage of. I hit a great drive on 17, then a terrible wedge. So it could have been a couple strokes better, but I'm still in good position going into tomorrow."
K.J. Choi (72), Padraig Harrington (70), Martin Laird (70), Jeff Overton (70) and Daniel Summerhays (73) are tied for seventh at 5-under-par 211.
The winner will earn a spot in The Masters, if not already qualified. Of the top-11 players on the leaderboard, only four are in the field next week for the season's first major.
"You can't allow (thoughts of Augusta) into your head. If you allow anything about the future to get in there, you sort of forget about the task at hand," Horschel said.
Horschel birdied the third from 31 feet out. He was one ahead of Hoffman, who birdied two and three. Horschel stumbled to a bogey on the fourth to slip into a share of the lead.
The 26-year-old Horschel poured in a 25-footer for birdie at the fifth to regain the lead. After a pair of pars, there was a 2-shot swing at the par-5 eighth.
Horschel was 21 feet away in three, but walked off with a bogey when he missed a 6-foot par effort. Hoffman 2-putted from 32 feet for birdie to move to minus-9.
At the ninth, Horschel stuffed his approach inside a foot and he kicked that in for birdie. He made it two in a row as he holed a birdie effort from off the green at the 10th.
Hoffman tripped to a bogey at the ninth and 3-putted for bogey at 11 to fall back to 7-under, where he was two behind Horschel. Hoffman came back with a birdie at 12, but tripped to another bogey on the 13th. He 2-putted for birdie on the par-5 14th to again get back to 8-under. He parred the final four holes to end there.
Horschel parred three in a row from the 11th. He birdied the 14th from five feet out, but faltered to a bogey at 15th to slip back to 10-under. He closed with three pars in a row.
"It was a good round obviously. There were a lot of emotions going on at the start of the day. I felt like I hit the ball well," Horschel stated. "I made some key putts, but missed a few coming in. With this wind blowing, you've just got to stay patient. Overall, it was a good day."
Furyk birdied one and two, but gave one shot back with a bogey on the fourth. Birdies at eight and 10 moved him to minus-8. He then bogeyed the par-3 13th, but closed with a 2-putt birdie at the last to end two back.
"I felt like I hit the ball really well today. I hit a bunch of fairways, hit a bunch of greens, and I didn't have to scramble that much," Furyk said. "It was nice to get off to that great start again with birdies at one and two. That kind of relaxed me a little bit."
NOTES: Horschel's best tour finish came last week when he tied for second at the Houston Open ... Furyk has gone 71 straight holes without a 3-putt ... There was a secondary cut with eight players being trimmed from the field ... Gary Woodland and Kyle Stanley were in that group.