The American sank three birdies on the back nine in a five-under 65 to move to 16 under as compatriot Spieth (67) bogeyed the last to drop to 14 under.
Americans Matt Kuchar (65) and Bud Cauley (68), and Spaniard Sergo Garcia (68), are tied for third at 13 under.
Overnight leader Ben Crane struggled to a 72 to fall six off the pace at the TPC Four Seasons Resort in Texas.
US Open champion Spieth had held the outright lead but he hit his tee shot on the 14th into water and had to hole a 23-foot bogey putt to drop only one shot.
However, there was a two-shot swing on the hole as Koepka sank a 20-foot birdie putt to take the lead.
Brooks Koepka will take a two-shot lead over Jordan Spieth into the final round of the AT&T Byron Nelson tournament.