Cincinnati (1-9-1) was limited to only 11 first downs and 207 total yards – much coming in garbage time – as the Steelers improved their record to 8-3 and moved 11/2 games ahead of Baltimore (6-4) in the AFC North standings.
The Steelers had 353 total yards and overcame a poor game by punter Paul Ernster, who averaged just 28.4 yards on five kicks.
Roethlisberger's eight-yard touchdown run just before the two-minute warning sealed the victory and capped off a 73-yard scoring drive.
The Bengals (1-9-1) struck first, aided by a poor punt by Ernster that traveled just 28 yards. That gave Cincinnati the ball at its own 38-yard line and the Bengals used a short-passing attack to go 62 yards on 11 plays, scoring on a 10-yard pass from Ryan Fitzpatrick to Glenn Holt – starting for suspended Chad Ocho Cinco – late in the first quarter.
The Steelers answered that score with 10:16 remaining in the second quarter, following a 30-yard punt by Cincinnati's Kyle Larson that gave Pittsburgh the ball at its own 46.
Roethlisberger connected with Hines Ward for a 37-yard play over the middle, then threw a three-yard TD pass to tight end Heath Miller – playing for the first time in three games – to tie the score at 7-7.
The Steelers increased that lead to 10-7 with 1:52 left in the half on a 37-yard Jeff Reed field goal. Roethlisberger had completions of 27 and 22 yards to Santonio Holmes in the 72-yard scoring drive, but the two failed to connect on a third-and-three pass from the Cincinnati 19 as the drive stalled.
The Bengals lost three yards on their next three plays and were forced to punt, but Larson's short kick hit Steelers wide receiver Limas Sweed in the hand after bouncing off the ground. The Bengals recovered at the Pittsburgh 39.
The Bengals, however, turned the ball over on downs. The Steelers opened the second half with a scoring drive, settling for another field goal when Hines Ward dropped Roethlisberger's third-and-two pass at the Cincinnati 10. Reed booted a 38-yard field goal to make it 13-7.
Holmes, who had five catches for 84 yards, was injured one play before Ward's dropped pass. While catching a slant pass, Holmes was hit hard by Cincinnati safety Chris Crocker and suffered a concussion.
The Steelers increased their lead to 20-7 with 16 seconds remaining in the third quarter, on a two-yard TD run by Gary Russell. It was the first touchdown of Russell's career.
Ernster had another poor punt in the fourth quarter to give the Bengals another score, shanking one 24 yards. That led to a Shane Graham's 26-yard field goal with 6:47 left in the game that trimmed the Steelers' lead to 20-10.
Pittsburgh running back Willie Parker had only 37 yards on 14 carries and left the game after a 15-yard run in the third quarter after feeling a twinge in his right knee. Parker missed four games with a sprained right knee earlier this season.
Mewelde Moore finished the game in Parker's place, gaining 56 yards on 15 attempts.
Linebacker LaMarr Woodley had the Steelers' lone sack against the Bengals' short passsing attack, his 10 1/2 of the season.
The Steelers also lost defensive end Brett Keisel to a knee injury in the fourth quarter. He did not return.
Safety Troy Polamalu matched his career high with his fifth interception on Cincinnati's final possession.