Caleb Williams threw for 239 yards and three touchdowns with DJ Moore hauling in five catches for 64 yards and two touchdowns to elevate the Chicago Bears to a 31-28 win over the Pittsburgh Steelers.