Winless in 221 starts with a career-best runner-up finish in the 2009 U.S. Open, the 35-year-old Barnes had an 11-under 205 total at TPC San Antonio. He closed with a bogey after a wild drive near a cactus bush on the par-5 18th.
''I'd be lying if I would say it was a successful career being out here without a win,'' Barnes said. ''This is why you play the game, right? Come in on Sundays and have a chance to win.''
Brendan Steele, the leader after each of the first two rounds, was second after a 72.
''I played with Ricky last week, and his game is looking really good right now,'' said Steele, the 2011 winner for his lone Tour title. ''I was really struggling. I was able to make enough recovery shots to not make many mistakes and I was able to be patient enough and make a couple of birdies at the end.''
Former world No. 1 Luke Donald and three-time Tour winner Charley Hoffman were two strokes back. Donald, coming off a second-place tie last week in the RBC Heritage in South Carolina, shot a 68. Hoffman missed a 7-foot birdie putt on the last hole and settled for a 70.
''Sure feels good to be back in contention again and having chances to win,'' Donald said. ''I switched putters last week [and] obviously making more putts.''
Patrick Reed was fifth at 8 under after a 70. He was born in San Antonio.
''I think if I'm in command of my game,'' Horschel said, ''it doesn't matter where I am. I can get the job done. I've figured out something in my swing.''
In addition to his seven birdies, Barnes did well to rescue himself from trouble. His bogey from the 18th could have been much worse when his drive went left and settled next to the cactus.
''A bad swing at the end,'' Barnes said. ''If you told me 5 under today, I would have taken it before the round.''
He birdied No. 11, 12 and 14 to take the lead. He managed that despite finding the fairway bunker at No. 12, and he blasted to 3 feet from a greenside bunker at the par-5 14th.
''It's not a fluke being out here,'' said Barnes, coming off a ninth-place tie in the RBC Heritage. ''I've been showing a lot lately. Just need to keep what I'm doing the last three days.''
Steele got off to a sticky start. He wasn't as lucky as Barnes when pulled his tee shot on No. 2 into a cactus bush and took an unplayable lie on the way to a bogey.
''I didn't hit many fairways today,'' Steele said. ''Kind of bad right out of the gate.''
Hoffman had a share of the lead before a bogey at No. 12. He reached the par-5 14th in two and converted for a birdie, and made a 6-footer for another birdie at 16.
''Obviously, this course fits my eye,'' Hoffman said. ''I've been knocking on the door for the last month and a half. I want to get a win and take what comes along.''