LeBron James scored 26 points, Mo Williams added 17 and the Cleveland Cavaliers, despite playing poorly on offense down the stretch, hung on to beat the Milwaukee Bucks 85-82 on Friday night for their fifth straight win.