Stephen Curry and Klay Thompson struggled, but Marreese Speights delivered a season-high 28 points as the Warriors won in Oklahoma City.