LeBron James scored a season-high 42 points, and the Cleveland Cavaliers beat the Golden State Warriors 110-99 on Thursday night for their 18th victory in 20 games.