Deshaun Watson threw for 238 yards and two touchdowns as the Cleveland Browns outlasted a two-hour weather delay to beat Baker Mayfield's Buccaneers.