No. 5 Oklahoma pulled ahead in the second half to knock off No. 2 Ohio State 31-16 on Saturday night.