Shaun Suisham kicked field goals of 42, 47 and 42 yards, and the Steelers clamped down on Cincinnati's Dalton-to-Green connection, holding it to one completion.
The Steelers (3-3) won on the road for the first time this season and improved to 12-2 at Paul Brown Stadium. The Bengals (3-4) fell to 0-6 the last two seasons against Baltimore and Pittsburgh.
Roethlisberger was 27 of 37 for 278 yards, leading an offense missing its top two running backs and two offensive linemen to injury. Jonathan Dwyer ran 17 times for 122 yards.
The Steelers and Bengals were tied 17-all after three quarters.
Pittsburgh overcame a first half full of self-destruction to even it up.
Ben Roethlisberger threw an 8-yard touchdown pass to Heath Miller with 24 seconds left in the half, then found the tight end for a 2-point conversion, pulling the Steelers into a 14-all tie. The teams traded field goals in the third quarter.
Roethlisberger’s 31-yard pass to Emmanuel Sanders moved Pittsburgh to the Cincinnati 14-yard line as the quarter ended.
Both teams needed a win to stay close to AFC North leader Baltimore (5-2), which lost 43-13 at Houston earlier Sunday. The Steelers and Bengals both came in with three losses.