Bengals ride big first half to shocking win over Steelers