The Sooners (8-0, 5-0 Big 12) trailed by double figures on two occasions — including 10-0 at the half —- but outscored the Jayhawks 35-13 in the second half to win their 16th straight game.
Jason Bean passed for 246 yards and a score for Kansas (1-6, 0-4), which led 17-7 late in the third quarter.
A 66-yard run by Trevon West sparked the Oklahoma offense after that. and scored two plays later for their first lead, 21-17, early in the fourth quarter.
Kansas was able to stay in the game because of the legs of Devin Neal who ran for 100 and a pair of touchdowns. Kansas didn’t punt for the first time until the fourth quarter.
In his second start, Williams threw for 178 yards, ran for 70 and converted two key fourth downs, one with the long TD run midway through the fourth quarter to make it 28-17 and another when he pulled the ball away from teammate Kennedy Brooks, who appeared stopped behind the line.
Williams took the ball from Brooks and ran for 5 yards to keep alive what turned out to be the sealing touchdown drive late in the fourth quarter.
Brooks ran for two scores.
Oklahoma: The Sooners were probably fortunate to be playing Kansas because this was their worst game of the season.
Kansas: The most encouraging game of the season for first-year coach Lane Leipold. The Jayhawks had several long touchdown drives that shortened the game and limited OU’s opportunities. Kansas had the ball from more than 35 minutes.
On the first drive of the game, the power went out on the entire campus turning off both scoreboards. The game continued and the power turned back on about 20 minutes later.
Oklahoma hosts Texas Tech next week.
Kansas travels to Oklahoma State.