Thomas offset a lone double bogey and a bogey with five birdies to reach the clubhouse at 9-under 207.
“I know for a fact I played better today than I did on Thursday when I shot a 9 under,” Thomas said. “It’s just so hard out there. I’ve never played in a place where the wind swirls as much as it does here.”
Brown had back-to-back bogeys on Nos. 10 and 11 but recovered with two birdies on the back nine for a 71.
“It was playing tough today,” Brown said. “Just kind of grounded it out, not a lot of birdies to be made. I just made some clutch up-and-downs to kind of keep the round going.”
Anirban Lahiri of India moved into a share of third place with Australian Marc Leishman (71) after a 69 that included four birdies and a bogey.
Whee Kim (70) was the highest placed of the 16 South Korean players in the field, tied for fifth after a 72.
Overnight leader Luke List struggled with the conditions and fell into a tie for eighth place after a 76. List had three bogeys on the front nine and a pair of double bogeys on the back nine.
Jason Day also struggled with the wind, carding a 71 to be tied for 16th on 3-under 213.
More wind is forecast for the final round on Sunday.
“It’s going to be tough but everyone has to deal with it,” Thomas said. “So we’re just going to have to get a great game plan and stick with it and just try to make as many pars as possible.”
Nick Taylor (72) of Abbotsford, B.C., was tied for 10th place at 4 under while Adam Hadwin (76), also of Abbotsford, was in 56th at 7 over.