J.W. Walsh threw for 415 yards and a touchdown, and Joseph Randle scored twice and set up another touchdown with a big fourth-quarter run as Oklahoma State beat Iowa State (No. 24 BCS) 31-10 on Saturday.